Shell脚本之特殊变量

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