用$计算退出代码?在壳中

时间:2012-05-23 02:05:57

标签: linux shell

你们能帮忙给出用于生成$的算法吗?在shell中从程序中的退出代码?例如,

  $? is 1 for exit(1);
  $? is 255 for exit(-1);

所以我可以从$?

推断退出代码
  $? is 1 => exit code is 1
  $? is 255 => exit code is -1

对于特别的事情,

  $? is 0 for exit(256);
  $? is 1 for exit(257);

有人可以在shell中给出用于生成$的算法吗?使用退出代码,这样我只能通过在执行命令后观察$?来知道退出代码。

非常感谢。

编辑:为了回答下面的问题,我添加了这个例子。

----a.c----
1 #include <stdlib.h>
2 int main()
3 {
4   exit(-1);
5 }
ning@m:~/work/02_test/ctest> gcc a.c
ning@m:~/work/02_test/ctest> ./a.out 
ning@m:~/work/02_test/ctest> echo $?
255
ning@m:~/work/02_test/ctest>

1 个答案:

答案 0 :(得分:3)

用bash,$?是最后一个命令的退出代码。运行shell脚本。

#!/bin/bash
exit 113

然后echo $?显示113.有关详细信息,请参阅http://tldp.org/LDP/abs/html/exit-status.html

使用BASH,有一些common exit codes

返回值只是一个8位Int。退出代码255表示超出范围,因此为-1。你看到256-> 0和257-> 1的原因是它正在四处走动。基本上退出值模256.

所有这一切都适用于Bash或C