shell中的特殊变量
- $0: 获取当前脚本的文件名,如果脚本中包含路径,就包括路径
- $N:获取shell脚本中第n个参数,n大于9时需要用{}括起来
- $#:获取当前shell脚本后面的参数总个数
- $*:获取当前脚本所有所传参数,不加引号和$@相同,把所有参数视为一个字符集,如果$*加上双引号,则表示,每个参数为单个字符,相当于"$1,$2,$3"如果单个参数中有空格,此方法则吧它以空格的方式分为多个字符集,例如::所传参数是"a b c d"和"ef" ,这是一个参数,双引号括起来表示是一个参数,但是当使用"$*"的时候,会变成"a","b","c","d"和"ef",以空格分开.
- $@:获取当前脚本所有所传参数,不加引号和$*相同,把所有参数视为一个字符集,如果$@加上双引号,则表示,每个参数原模原样的搬过来,例如:所传参数是"a b c d"和"ef" ,这是一个参数,双引号括起来表示是一个参数,当使用"$@"的时候,输出为"a b c d" 和"ef",会保留空格,视为一个字符集,本来就是一个字符集.
- $?:获取上一条命令执行后的返回值(0为成功,非0为失败)
- $$:获取当前shell脚本的进程号(PID)
- $!:获取上一个shell脚本的进程号(PID)
- $_:获取再此之前的命令或脚本的最后一个参数.