Shell脚本——特殊变量
$0和$n
$0 当前脚本的文件名
$n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
示例
#!/bin/bash echo "----: $0" echo "----: $1" echo "----: $2" echo "----: $3" echo "----: $4" echo "----: $5" 执行结果: [root@localhost ~]# sh 3.sh 1 2 3 43 5 ----: 3.sh ----: 1 ----: 2 ----: 3 ----: 43 ----: 5
$* 和 $@、$#的区别
$# 传递给脚本或函数的参数个数。
$* 传递给脚本或函数的所有参数。
$@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同
#!/bin/bash echo "$*=" $* echo "$@=" $@ echo "$#=" $# for i in "$*";do echo $i done for i in "$@";do echo $i done 执行结果: [root@localhost ~]# sh 3.sh 11 22 3 $*= 11 22 3 $@= 11 22 3 11 22 3 11 22 3
$?
$? 上个命令的退出状态,或函数的返回值。
#!/bin/bash ls -l >/dev/null echo $?
$$
$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。