我已经尝试过这些命令。
~$top
(ctrl + z)stopped the process
~$echo $?
147
~$top
(ctrl + c)killed the process
~$echo $?
0这里发生了什么,请解释一下,为什么它会显示一些常量值。这些值的含义是什么。
发布于 2016-02-17 21:28:55
$?是上次运行进程的返回码。0表示未发生错误。其他值表示某种不寻常的情况。
值128及以上通常表示某种信号。147 - 128 = 19,表示程序接收到信号19 (Linux上的SIGSTOP)。现在,正常地按^Z将发送SIGTSTP (与SIGSTOP不同的信号),这可能意味着top捕获了该信号,执行了一些(可能与终端相关的)清理,并重新发出SIGSTOP以实际挂起程序。
top还捕获了SIGINT (通常在按^C后发出),执行清理并干净地退出(退出值为0)。
您可以运行kill -l来查看当前平台的所有信号号。注意,这些数字在不同的平台上是不同的;例如,SIGSTOP在Darwin上是17,在Linux上是19。
发布于 2016-02-17 21:28:54
echo $?返回最后执行的命令的返回值(退出状态) (0通常为success)。
https://stackoverflow.com/questions/35457979
复制相似问题