Shell特殊变量¶
变量说明¶
| 变量 | 说明 |
|---|---|
$$ |
Shell本身的PID(ProcessID) |
$! |
Shell最后运行的后台Process的PID |
$? |
最后运行的命令的结束代码(返回值) |
$- |
使用Set命令设定的Flag一览 |
$* |
不加引号,获取所有传参的参数,加引号 “$*” ,将所有参数视为单个字符串,如 “$1 $2 $3” |
$@ |
不加引号,获取所有传参的参数,加引号 “$@” ,将所有参数视为不同的独立字符串,如“$1”“$2” “$3” |
$# |
获取脚本后跟参数的总个数 |
$0 |
获取shell脚本名,dirname $0 脚本路径,basename $0 脚本名字 |
$1~$n |
脚本第n个参数,大于9时,用{},如${10} |
脚本示例
vim variable.sh
| Bash | |
|---|---|
执行效果
bash variable.sh aa bb
通过显示结果可以看到:
$#是传给脚本的参数个数$0是脚本本身的名字$1是传递给该shell脚本的第一个参数$2是传递给该shell脚本的第二个参数$@是传给脚本的所有参数的列表
特殊扩展变量¶
| 表达式 | 说明 | 备注 |
|---|---|---|
${var:-word} |
var值为空或未赋值,返回word | 代替值,不设置值 |
${var:=word} |
var值为空或未赋值,返回word | 设置var值为word |
${var:?word} |
var值为空或未赋值,返回-bash: var: word |
将word作为标准错误STDERR输出 |
${var:+word} |
var已赋值不为空,返回word | 有值替代为word返回,空值不处理 |