shell脚本中 '$' 与不同的符号搭配其表示的意义也会不同
特殊标志符 | 含义 |
$0 | 当前脚本的文件名 |
$n |
传递给脚本或函数的参数。n 是一个数字,表示第几个参数。 例如,第一个参数是$1,第二个参数是$2 |
$# | 传递给脚本或函数的参数个数 |
$* | 传递给脚本或函数的所有参数 |
$@ | 传递给脚本或函数的所有参数 |
$? | 上个命令的退出状态 |
$$ | 当前Shell进程ID |
$() |
与 `(反引号) 一样用来命令替换使用 |
${} | 引用变量划分出边界 |
注释:$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数
#! /bin/bash echo "file name $0" echo "first param $1" echo "pid $$" echo "total num of param $#" echo "last status $?" echo "$@" echo "$*"
执行 ./1.sh hello mayuan
file name ./1.sh first param hello pid 142 total num of param 2 last status 0 hello mayuan hello mayuan