Shell编程——变量

Shell变量命名

定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:

var="This is test"

shell变量的命名规则:

  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
  • 中间不能有空格,可以使用下划线(_)。
  • 不能使用标点符号。
  • 不能使用bash里的关键字(可用help命令查看保留关键字)。

系统变量

在命令行提示符直接执行 env、 set 查看系统或环境变量。 env 显示用户环境变量, set 显示 Shell预先定义好的变量以及用户变量。可以通过 export 导出成用户变量。
一些写 Shell 脚本时常用的系统变量:

变量作用
$SHELL默认 Shell
$HOME当前用户家目录
$IFS内部字段分隔符
$LANG默认语言
$PATH默认可执行程序路径
$PWD当前目录
$UID当前用户 ID
$USER当前用户
$HISTSIZE历史命令大小,可通过 HISTTIMEFORMAT 变量设置命令执行时间
$RANDOM随机生成一个 0 至 32767 的整数
$HOSTNAME主机名

普通变量和临时变量

普通变量定义: VAR=value
临时环境变量定义: export VAR=value
变量引用: $VAR
两者之间的区别:
Shell 进程的环境变量作用域是 Shell 进程,当 export 导入到系统变量时,则作用域是 Shell 进程及其 Shell 子进程。
在这里插入图片描述
说明:前终端下的所有进程的 PPID 都是-bash 的 PID,比如执行命令、运行脚本。所以当在-bash 下设置的变量,只在-bash 进程下有效,而-bash 下的子进程 bash 是无效的,当export 后才有效。

位置变量

位置变量指的是函数或脚本后跟的第 n 个参数。$1-$n,需要注意的是从第 10 个开始要用花括号调用,例如${10}
实例:

vim example.sh
#!/bin/bash
echo "当前脚本名称为$0"
echo "总共有$#个参数,分别是$*。"
echo "第一个参数为$1,第五个参数为$5。"

运行结果:

bash example.sh 1 2 3 4 5 6
当前脚本名称为example.sh
总共有6个参数,分别是1 2 3 4 5 6。
第一个参数为1,第五个参数为5。

特殊变量

变量名作用
$0脚本自身名字
$?返回上一条命令是否执行成功, 0 为执行成功,非 0 则为执行失败
$#位置参数总数
$*所有的位置参数被看做一个字符串
$@每个位置参数被看做独立的字符串
$$当前进程 PID
$!上一条运行后台进程的 PID

shell注释

单行注释

# 这是一个注释

多行注释

:<<EOF
注释内容...
注释内容...
注释内容...
EOF

或者

:<<'
注释内容...
注释内容...
注释内容...
'

:<<!
注释内容...
注释内容...
注释内容...
!
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值