免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1365 | 回复: 4
打印 上一主题 下一主题

[Linux资讯] 为啥返回的是120 [复制链接]

论坛徽章:
2
处女座
日期:2014-02-11 22:56:59技术图书徽章
日期:2014-02-11 22:58:13
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-02-23 09:54 |只看该作者 |倒序浏览
我建立一个shell文件 script.sh,内容如下:

#!/bin/bash

exit 888

然后我再执行下面的语句

[root@localhost scripts]# ./script.sh
[root@localhost scripts]# echo $?
120
我想问下,为啥返回的是120,而不是888

论坛徽章:
2
2016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之广夏
日期:2016-12-07 08:32:11
2 [报告]
发表于 2014-02-23 14:59 |只看该作者
你直接运行命令 exit 888,然后看看返回值是多少。

论坛徽章:
2
2016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之广夏
日期:2016-12-07 08:32:11
3 [报告]
发表于 2014-02-23 18:19 |只看该作者
楼主我又来了。。这个问题我试了试还是不懂。不过有点意思。我就去linuxquestion网站问了下,老外说由于历史原因,命令返回值被限制为8bits,超出的位数会从高位舍弃。也是就是说你返回了个888,这玩意儿化为二进制为1101111000,我们前面去掉两位,剩下01111000,也就是十进制120。
我也长见识了。楼主很细心啊。

论坛徽章:
2
处女座
日期:2014-02-11 22:56:59技术图书徽章
日期:2014-02-11 22:58:13
4 [报告]
发表于 2014-02-23 19:00 |只看该作者
剑魂箫心 发表于 2014-02-23 18:19
楼主我又来了。。这个问题我试了试还是不懂。不过有点意思。我就去linuxquestion网站问了下,老外说由于历史 ...


我也是无意中发现这个问题的,我在其他论坛上问过了,他们的说法是这样:

“返回值是小于等于256的。如果超过了,就取余数。888-256*3=120”

论坛徽章:
2
2016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之广夏
日期:2016-12-07 08:32:11
5 [报告]
发表于 2014-02-23 19:03 |只看该作者
好像一个意思。。 回复 4# liujun3512159


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP