几个特殊变量
变量 | 含义 |
$$ | Shell本身的PID(ProcessID) |
$! | Shell最后运行的后台Process的PID |
$? | 最后运行的命令的结束代码(返回值) |
$- | 使用Set命令设定的Flag一览 |
$* | 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 |
$@ | 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 |
$# | 添加到Shell的参数个数 |
$0 | Shell本身的文件名 |
$1~$n | 添加到Shell的各参数值。$1是第1参数、$2是第2参数…。如果大于等于10序号要用花括号包起来,例如${10} |
test命令
test命令用于检查文件类型和表达式(check file types and compare values),返回的结果放在“$?”里,结果为0表示true,结果不为0表示false。例如:
$ test "a" = "b" $ echo $? 1
test命令可以用“[]”简写(注意[]里面要带有空格,否则提示command not found),后面加上&&符号则表示当表达式成立时执行后续操作。例如:
$ [ "a" = "a" ] && echo yes yes
类似的,后面加上“||”则表示当表达式不成立时执行后续操作。
-z参数用来判断字符串是否为空,例如:
$ [ -z "" ] && echo yes yes
还有一些类似的其他表达式参数,以及与文件相关的参数,可以man test查看。
参考链接:
- shell变量详解(推荐)