2

$ を生成するために使用されるアルゴリズムを教えてください。プログラムの終了コードからシェルで?例えば、

  $? 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);

$を生成するために使用されるシェルのアルゴリズムを誰かに教えてもらえますか? $? を観察するだけで終了コードを知ることができるように、終了コードを使用します。コマンドを実行した後。

どうもありがとう。

編集: 以下の質問に答えるために、この例を追加しました。

----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>
4

1 に答える 1

3

バッシュで、$? 最後のコマンドの終了コードです。シェル スクリプトの実行。

#!/bin/bash
exit 113

その後、echo $?113 が表示されます。詳細については、 http://tldp.org/LDP/abs/html/exit-status.htmlを参照してください。

BASH には、一般的な終了コードがいくつかあります。

戻り値は 8 ビットの Int です。終了コード 255 は範囲外を意味するため、-1 です。256->0 と 257->1 が表示されている理由は、それがラップアラウンドしているためです。基本的に終了値はモジュロ 256 です。

これはすべて、Bash または C に当てはまります。

于 2012-05-23T02:13:48.050 に答える