Shell中特殊的变量

位置变量

$0代表命令本身
$1-$9代表顺序参数编号,大于10的话使用括号,如${10}
$* 把所有参数当作整体
$@ 把每个参数分开对待
$# 所有参数的个数

举例说明:

[root@localhost ~]# cat test.sh 
echo $0 $1 $2 $3 ${10}
basename $0
dirname $0 

[root@localhost ~]# sh /root/test.sh 1 2 3 4 5 6 7 8 9 10
/root/test.sh 1 2 3 10
test.sh
/root

basename 是指脚本名字和 dirname 是指路径。

进程状态变量

1、$$获取当前shell的进程号(PID)
2、$!执行上一个指令的PID
3、$?获取执行上一个命令的返回值(0为成功,非零为失败,这个很常用)
4、$_在此之前执行的命令或脚本的最后一个参数

$?返回值参考:
1~125 表示运行失败,脚本命令、系统命令错误或参数传递错误;
126 找到该命令了,但是无法执行
127 未找到要运行的命令
128 命令被系统强制结束
0 成功
2 权限拒绝

猜你喜欢

转载自www.cnblogs.com/kyeup/p/9333022.html