shell脚本特殊变量($0、$1、$2、 $?、 $# 、$@、 $*)

时间:2022-09-06 15:37:22

$0        Shell本身的文件名
$1~$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数…
$$        Shell本身的PID(ProcessID) 
$!         Shell最后运行的后台Process的PID
$?        上个命令的退出状态,或函数的返回值$- 使用Set命令设定的Flag一览
$*         所有参数列表,不包括脚本本身。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有数。
$@       所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$#        Shell的参数个数


注:$@和$* 只在被双引号包起来的时候才会有差异
       双引号括起来的情况:
       $*将所有的参数认为是一个字段

       $@以IFS(默认为空格)来划分字段,

for k in "$@"循环次数是参数个数

for arg in "$*" 只进行一次循环