加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

什么是echo $?在linux终端?

发布时间:2020-12-14 01:38:09 所属栏目:Linux 来源:网络整理
导读:参见英文答案 What is the $? (dollar question mark) variable in shell scripting? ????????????????????????????????????9个 我试过这些命令. ~$top(ctrl + z)stopped the process~$echo $?147~$top(ctrl + c)killed the process~$echo $?0 这里发生了什
参见英文答案 > What is the $? (dollar question mark) variable in shell scripting? ????????????????????????????????????9个
我试过这些命令.

~$top
(ctrl + z)stopped the process
~$echo $?
147
~$top
(ctrl + c)killed the process
~$echo $?
0

这里发生了什么,请解释一下,为什么它显示出一些恒定的价值.这些价值观的含义是什么?

解决方法

$?是上次运行进程的返回码. 0表示没有发生错误.其他值代表某种不寻常的条件.

值128及以上通常代表某种信号. 147 – 128 = 19,表示程序接收到信号19(Linux上为SIGSTOP).现在,通常按^ Z发送SIGTSTP(来自SIGSTOP的不同信号),这可能意味着top捕获了该信号,做了一些(可能与终端相关)清理,并重新发出SIGSTOP以实际暂停程序.

top也捕获了SIGINT(通常在按下^ C后发出),进行清理并干净地退出(退出值为0).

您可以运行kill -l来查看当前平台的所有信号编号.请注意,不同平台的数字不同;例如,SIGSTOP在Darwin上是17,在Linux上是19.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读