两种语法“$!”的区别和“$?”
the difference between the two syntax "$!" and "$?"
我一直在研究 Shell,我看到了类似的东西:
pid_A2=$!
wait $pid_A2
pid_A2=$?
能否解释一下“$!”这两种语法的区别?和“$?”...
实际上,我知道 $?是前一个命令的退出状态,但我从未见过前一个命令。
$?
: 上次进程执行的状态
$!
: 后台最后一个命令的pid
$!
是后台进程的最后一个作业。例如:
$ sleep 1000 &
[1] 6646 ---> process id
echo "$!"
将打印最后一条命令的进程 ID(此处为 6646)。
$?
returns 最近执行的命令的退出值。 $?
用于处理命令或函数的 return 值。例如:
if [ **$?** -eq 1 ];
then
# do something
fi
我一直在研究 Shell,我看到了类似的东西:
pid_A2=$!
wait $pid_A2
pid_A2=$?
能否解释一下“$!”这两种语法的区别?和“$?”... 实际上,我知道 $?是前一个命令的退出状态,但我从未见过前一个命令。
$?
: 上次进程执行的状态
$!
: 后台最后一个命令的pid
$!
是后台进程的最后一个作业。例如:
$ sleep 1000 &
[1] 6646 ---> process id
echo "$!"
将打印最后一条命令的进程 ID(此处为 6646)。
$?
returns 最近执行的命令的退出值。 $?
用于处理命令或函数的 return 值。例如:
if [ **$?** -eq 1 ];
then
# do something
fi