本文是自己学习的总结,仅以作分享。若有不对的地方欢迎指正。
Shell的特殊变量
位置变量
$0:获取当前脚本的文件名,包括路径(dirname$0只获取脚本路径;basename$0只获取脚本名称)
$n:获取当前执行的shell脚本的第n个参数值,n=1..9。如果n大于9,则用{ }将数字括起来。(1..9等数字表示取脚本执行后得到的结果的具体对应的参数。如:sh n.sh kk ff,$1的取值是kk)
$#:获取脚本执行后命令行参数的总个数。如:sh n.sh 1 2 3,$#的值为3;sh n.sh “1 2 3”,$#的值为1,原因是“1 2 3”为一个参数。
进程状态变量
$$:获取当前shell的进程号(PID),如2565
$!:执行上一个指令的PID,如2565
$?:获取执行上一个命令的返回值(0为成功;非0为失败,2表示权限拒绝,126有命令但无法执行,127没找到运行的命令),可以判断上一个命令有没有执行成功;各种打包的时候也可以用它来判断。
$#:获取当前shell的命令行中参数的总个数
$*:获取当前shell的所有参数(将所有命令行所有参数视为一个字符串,等同于“$1$2$3”)
$@:这个程序的所有参数(将命令行每个参数视为单独的字符串,等同于“$1”,“$2”,“$3”)
$_:在之前执行的命令或脚本的最后一个参数
版权声明:本文为RambleHQ原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。