Linux系统Shell脚本特殊变量
$0
,$$
,$?
,$#
,$*
,$@
1 Shell脚本特殊变量
变量 | 含义 |
---|---|
$0 |
当前脚本的名字 |
$n |
传递给脚本的参数,例:./test.sh 1 2 3 $1 为1$2 为2,$3 为3 |
$$ |
当前进程ID |
$? |
上个执行命令的退出状态或返回值 |
$# |
脚本传递的参数个数 |
$* |
脚本传递的所有参数 |
$@ |
脚本传递的所有参数,被双引号””包含时,与$* 不同 |
2 $*和$@的区别
- 当脚本传递的参数都不被双引号””包含时,
$*
和$@
都以"$1" "$2"…"$n"
表示脚本的所有参数; - 当脚本传递的参数被双引号””包含时,
$*
会将所有的参数作为一个整体,即为这样的输出形式"$1 $2 … $n"
,而$@
会这样输出"$1" "$2"…"$n"
。 - 表格对比:
命令 | $* | $@ |
---|---|---|
./test.sh 1 2 3 |
1 2 3 |
1 2 3 |
./test.sh "1" "2" "3" |
1 2 3 |
1 2 3 |