14歳の自分に衝撃の事実を告げてください

linux初心者です。
下記のようなシェルを作成して実行したとき、javaの実行途中で
[ctrl+c]で中断すると戻り値(echoのところ)が130となります。
これってjavaの仕様ですか?ググっても見つからなかったもので。

----------------
#!/bin/sh
java Exec
echo $?
----------------

・環境
redhat enterprise linux 4
 jdk1.5

A 回答 (1件)

シェルの仕様ですね。

man bash に書いてあります。

>単純なコマンドの返り値はコマンドの終了コードですが、シグナル n を受けてコマンドが終了した場合には 128+n となります。

Ctrl-C をタイプすると、プロセスに2番のシグナル(SIGINT)が送られます。その場合、プロセスは普通終了します。シェルが返す終了コードは、(128+シグナル番号)になるので、この場合130になります。
    • good
    • 1
この回答へのお礼

なるほど。そういう仕様なんですか。
コマンドの終了コードを128以上にするとわからなくなっちゃうんですね。
もう少しドキュメントを見るようにします。

ありがとうございました。

お礼日時:2008/08/28 17:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報