shell中有一些特殊变量,可以很方便的获取一些信息。
变量 | 含义 |
$0 | 当前脚本的文件名。 |
$n(n>=1) | 传递给脚本或函数的第n个参数。 |
$# | 传递给脚本或函数的参数个数。 |
$* | 传递给脚本或函数的所有参数。 |
$@ | 传递给脚本或函数的所有参数,被双引号包围时与$*不同。 |
$? | 上个命令的退出状态,或函数的返回值。 |
$$ | 当前Shell进程ID或Shell脚本所在进程ID。 |
简单示例
如下a.sh
#! /bin/bash
echo "pid:$$"
echo "filename:$0"
echo "p1:$1"
echo "p3:$3"
echo "all:$@"
echo "all:$*"
echo "pcount:$#"
执行a.sh a b c d e f 1 2 3
pid:1990
filename:./a.sh
p1:a
p3:c
all:a b c d e f 1 2 3
all:a b c d e f 1 2 3
pcount:9
如下b.sh
#! /bin/bash
function func(){
echo "pid:$$"
echo "filename:$0"
echo "p1:$1"
echo "p3:$3"
echo "all:$@"
echo "all:$*"
echo "pcount:$#"
}
func a b c d e f 1 2 3
执行b.sh
pid:2194
filename:./b.sh
p1:a
p3:c
all:a b c d e f 1 2 3
all:a b c d e f 1 2 3
pcount:9