2021-06-06
关键字:shell参数系统变量
变量名 | 含义 |
$@ | 此命令下所携带的所有参数。以空格隔开 |
$* | 此命令下所携带的所有参数。以空格隔开 |
$# | 此命令下所携带参数的数量。 |
$n | n是0 ~ n 的数字,表示第几个参数。$0表示命令名本身。$1表示第一个参数,以此类推。 |
$_ | 保存之前执行的命令的最后一个参数 |
$$ | 获取当前进程的PID,即本shell命令的进程ID号。 |
$! | 在后台运行的最后一个进程的PID。 |
$? | 上一次命令的执行结果。0为执行成功,其它值表示执行失败。 |
以下是测试这些系统变量的源码:
#!/bin/sh echo "$@:$@" echo "$*:$*" echo "$#:$#" echo "$0:$0" echo "$1:$1" echo "$_:$_" echo "$$:$$" echo "$!:$!" ls jkkk 2> /dev/null echo "$?:$?"
上述倒数第二行是人为构造一个命令执行出错的场景出来以测试 $? 变量的值。
以下是执行结果:
root@ubuntu:~# ./param.sh p1 p2 $@:p1 p2 $*:p1 p2 $#:2 $0:./param.sh $1:p1 $_:./param.sh $$:6644 $!: $?:2