首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是echo $?在linux终端上?

问什么是echo $?在linux终端上?
EN

Stack Overflow用户
提问于 2016-02-17 21:24:31
回答 2查看 42.4K关注 0票数 13

我已经尝试过这些命令。

代码语言:javascript
复制
~$top
(ctrl + z)stopped the process
~$echo $?
147
~$top
(ctrl + c)killed the process
~$echo $?
0

这里发生了什么,请解释一下,为什么它会显示一些常量值。这些值的含义是什么。

EN

回答 2

Stack Overflow用户

发布于 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。

票数 25
EN

Stack Overflow用户

发布于 2016-02-17 21:28:54

echo $?返回最后执行的命令的返回值(退出状态) (0通常为success)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35457979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档