shell脚本有一些特殊变量,这些特殊变量以$开头,这些变量是shell脚本一开始执行就存在了,而且用户一般不能修改这些变量,这些变量一般是只读的。例举如下:
变量名称 含义
$0 当前脚本的名称
$n 脚本调用的参数,n只能取1~9,如果n>10,可以使用shift变量往前移动一格
$* 程序的所有变量数组 参见 shell变量 $*与 $@的区别
$@ 程序的所有变量数组 参见 shell变量 $*与 $@的区别
$# 程序的变量个数
$$ 当前运行脚本的PID
$! 执行上一个后台程序的PID
$? 执行上一条语句的返回值,在unix系统 :0 表示成功,否则失败
如何判断上一个命令是否执行成功了,就是用符号“$?”来显示上一条命令执行的返回值,如果为:0则代表执行成功,其它值表示失败。(这是unix系统进程返回值的约定)
true
echo $?
false
echo $?
test 'abc' == 'abc'
echo $?
test 'abc' == 'acb'
echo $?
name = 'Tom'
test -n $name
echo $?
test -d /usr/bin
echo $?
if [ $? -eq 0 ]; then
echo "success"
else
echo "failed"
fi