【发布时间】:2019-07-01 14:32:12
【问题描述】:
我一直在研究 Shell,我见过类似的东西:
pid_A2=$!
wait $pid_A2
pid_A2=$?
请您解释一下“$!”这两种语法之间的区别吗?和“$?”... 实际上,我知道$?是上一个命令的退出状态,但我从未见过上一个。
【问题讨论】:
-
最好显示 before
pid_A2=$!行——它可能类似于:some_command &命令在后台启动。
我一直在研究 Shell,我见过类似的东西:
pid_A2=$!
wait $pid_A2
pid_A2=$?
请您解释一下“$!”这两种语法之间的区别吗?和“$?”... 实际上,我知道$?是上一个命令的退出状态,但我从未见过上一个。
【问题讨论】:
pid_A2=$! 行——它可能类似于:some_command & 命令在后台启动。
$?: 上一次进程执行的状态
$!: 后台最后一条命令的pid
【讨论】:
$! 是后台进程的最后一个作业。例如:
$ sleep 1000 &
[1] 6646 ---> process id
echo "$!" 将打印最后一条命令的进程 ID(此处为 6646)。
$? 返回最近执行的命令的退出值。 $? 用于处理命令或函数的返回值。例如:
if [ **$?** -eq 1 ];
then
# do something
fi
【讨论】: