Shell中的特殊变量
Shell 特殊变量功能如下:
$0:当前脚本的文件名
$N:返回第N个参数,N>0
$#:统计传入的变量个数
$*:所有参数列表,代表"$1 $2 … $n",即当成一个整体输出,每一个变量参数之间以空格隔开
$@:所有参数列表,代表"$1" "$2" … "$n" ,即每一个变量参数是独立的
$?:返回上一个命令执行的返回码
$$:返回pid
$!:最后运行的后台Process的pid
$-:列出Set命令设定的Flag
${#*}:传递到脚本中的命令行参数的个数
${#@}:传递到脚本中的命令行参数的个数
$*与$@要用双引号引起来;下面是区分"$*"与"$@"的案例:
#!/bin/bash # script name:b.sh author:qq5201351 # for i in "$*";do echo $i done echo "=================" for i in "$@";do echo $i done #bash b.sh 1 2 3 执行结果如下: 1 2 3 ================= 1 2 3
心若向阳,无谓悲伤!