コマンドから終了コードを取得するにはexec
?
以下はサンプルコードです。他のコマンドで動作しますがexec
。
exec "somethings"
if [ $? == 0 ];
then
echo -e "Done\n"
exit 0
else
echo -e "error\n"
exit 1
fi
ベストアンサー1
これは同じ問題が発生したときに役立ちました。
execが正常に使用されると、execプログラムはシェルを置き換えます。 exec プログラムの終了状態は、実行中のシェルの親プロセスに戻されます。
exec次の行がexecの終了状態を説明できる唯一の方法は、exec呼び出しが失敗したことです。通常、要求されたコマンドが存在しない場合、またはファイルが実行可能でない場合にのみ発生します。オプションの解決問題はexecプログラムの起動後に解決されるため、これには含まれません。
シェルがプログラムの終了コードを解釈するようにするには、execを使用してそれを行うことはできません。シェルでプログラムを実行すると、完了すると終了ステータスが表示されます。