exitコマンドの終了コード
1673 ワード
どんな環境でもそうですが、何も意識せずにコードを書いていると、思わぬところで引っかかることがあります。
シェルスクリプトとexit
コマンド
プログラムを書く上で、「途中脱出」という技法はよく必要となります。そして、シェルスクリプトでそれを実現するのがexit
コマンドです。
exit 0
のように終了コードを指定すれば、それをシェルスクリプト全体の終了コードとする1、という結果になります。
終了コードを指定しないと…
では、終了コードを指定しない場合はどうなるかというと、「前のコマンドの終了コードをそのまま返す」ような挙動となります。set -e
している場合2などは典型的ですが、普通に実行していれば終了コード0のコマンドばかりが並びますので、exit
だけでも終了コード0を返す状況が多いです。
とはいえ、引っかかるパターンもありまして、[ 条件 ] || exit
のように書くと、条件が成立しない場合に[
コマンドの終了コードは1で、続くexit
がその1を返してしまいます。シェルスクリプトの終了コードを0にするには、明示的に[ 条件 ] || exit 0
と書く必要があります。
結論
-
exit
のような、一見単純に見えるコマンドでも、意外な挙動が潜んでいることがある - 正常終了させたいときに、無意識に
exit
だけ書いていると失敗することがある
外部リンク
Author And Source
この問題について(exitコマンドの終了コード), 我々は、より多くの情報をここで見つけました https://qiita.com/jkr_2255/items/6d14045cfa0494c21a20著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .