by shigemk2

当面は技術的なことしか書かない

実行結果の戻り値

コマンドを実行すると、終了時にシェルに対して戻り値を返す。
正常終了した場合は0
正常終了しなかった場合は0以外の値が返される。

この戻り値を利用すれば、コマンドの実行が正常に終了したかどうかを判定できる。
戻り値は特殊な変数$?に格納されている。
次の例ではエラーが発生したため、戻り値が1になっている。

shige@shigemk2 ~% ls -l hoge
ls: hoge: No such file or directory
shige@shigemk2 ~% echo $?
1
shige@shigemk2 ~% echo $?
0

最初のechoコマンドが正常終了したので、戻り値が0になっているのだ。
コマンドを実行するたびに変数$?の値が初期化され、新たな戻り値が格納される。

出典については…気にするな!