Shell特殊位置变量 Shell中存在一些特殊且重要的变量,如下
$0 获取当前执行Shell脚本的文件名字,如果执行脚本时候加了路径,那就包含脚本路径跟脚本名字一起输出
$n 获取当前执行Shell交本的第n个参数,n=1..9,n>9,后面参数变量就需要用大括号,如:${10},以空格分隔
$# 获取当前执行Shell脚本接了多少个参数(总计)
$* 获取当前执行Shell脚本所有传参的参数
$@ 获取当前执行Shell脚本所有传参的参数($*和$@详解见例子)
1 [root@ king tmp]# cat t.sh 2 if [ $# -ne 2 ] #如果执行脚本传参的个数不为2, 3 then 4 echo "USAGE:/bin/sh $0 arg1 arg2" #则给用户提示正确用法,此处的$0,打印脚本名字及路径。 5 exit 1 #若不满足要求,则退出脚本,返回值为1。 6 fi 7 echo $1 $2 #若参数满足要求,则打印$1和$2获取到的传参的字符串。 8 [root@ king tmp]# sh t.sh #若不加参数执行脚本,则直接给出提示。 9 USAGE:/bin/sh t.sh arg1 arg2 #t.sh就是脚本中$0获取的值。 10 [root@ king tmp]# sh t.sh hello world 11 hello world #若参数满足要求,则打印$1和$2获取的字符串,即hello和world。