我一直在研究Shell,并且看到过类似的东西:
pid_A2=$!
wait $pid_A2
pid_A2=$?
请解释两个语法“ $!”之间的区别。和“ $?” ... 实际上,我知道$?是上一个命令的退出状态,但我从未见过上一个命令。
答案 0 :(得分:1)
$?
:上次执行流程的状态
$!
:后台中最后一个命令的pid
答案 1 :(得分:0)
$!
是后台进程的最后一项工作。例如:
$ sleep 1000 &
[1] 6646 ---> process id
echo "$!"
将显示最后一条命令的进程ID(此处为6646)。
$?
返回最近执行的命令的退出值。当我们要处理命令或函数的返回值时,使用$?
。例如:
if [ **$?** -eq 1 ];
then
# do something
fi