两种语法“ $!”之间的区别和“ $?”

时间:2019-02-07 12:59:55

标签: shell unix ksh aix

我一直在研究Shell,并且看到过类似的东西:

pid_A2=$!
wait $pid_A2
pid_A2=$?

请解释两个语法“ $!”之间的区别。和“ $?” ... 实际上,我知道$?是上一个命令的退出状态,但我从未见过上一个命令。

2 个答案:

答案 0 :(得分:1)

$?:上次执行流程的状态

$!:后台中最后一个命令的pid

答案 1 :(得分:0)

$!是后台进程的最后一项工作。例如:

$ sleep 1000 &
[1] 6646    ---> process id

echo "$!"将显示最后一条命令的进程ID(此处为6646)。

$?返回最近执行的命令的退出值。当我们要处理命令或函数的返回值时,使用$?。例如:

if [ **$?** -eq 1 ];
then
    # do something
fi