跳转至

8. 特殊状态变量

3.8 特殊状态变量

$?  上一次命令执行的状态,0正确,非0错误
$$  当前shell脚本的进程号
$!  上一次后台进程的PID
$_  获取上次脚本命令的最后一个参数

$? $$ 测试

[root@151 ~]# vim test2.sh

[ $# -ne 2 ] && {
    echo "必须给脚本2个参数!!!"
    exit 119
}
echo "执行成功,接收到2个参数"
echo "当前脚本pid是:$$"
[root@151 ~]# bash test2.sh chu
必须给脚本2个参数!!!
[root@151 ~]# echo $?
119
[root@151 ~]# bash test2.sh chu peng
执行成功,接收到2个参数
当前脚本pid是:60456
[root@151 ~]# echo $?
0

$! 获取后台进程pid测试

[root@151 ~]# nohup ping baidu.com & 1> /dev/null
[1] 60864
[root@151 ~]# nohup: ignoring input and appending output to ‘nohup.out’

[root@151 ~]#
[root@151 ~]# ps -ef|grep ping
root      60864  21337  0 01:13 pts/1    00:00:00 ping baidu.com
root      60921  21337  0 01:13 pts/1    00:00:00 grep --color=auto ping
[root@151 ~]# echo $!
60864

$_ 获取上次命令的最后一个参数

[root@151 ~]# bash test2.sh chu peng
执行成功,接收到2个参数
当前脚本pid是:61205
[root@151 ~]# echo $_
peng

最后更新: 2022-02-25 03:53:42