99番出口とは何か、なぜそれを使用するのか、そして99番出口の重要な用途は何かを知りたい。
たとえば、exit 99
を使用しています。
特定のプログラムのコンテキスト内にある場合を除いて、コード99で終了しても意味はありません。
どちらの方法でも、exit
は特定の終了コード(この場合は99)でシェルを終了します。詳細については、help exit
を参照してください。
exit: exit [n]
Exit the Shell.
Exits the Shell with a status of N. If N is omitted, the exit status
is that of the last command executed.
@Chris Downに加えて、シェル用に予約されているいくつかの戻りコードがあり、それらには特別な意味があります。
RETVAL Meaning
1 General errors
2 Misusage
127 Command not found
詳細は this を参照してください。
通常、ある時点でスクリプトを終了する場合:
exit 0
シェルは戻りコードとして0を取得します。このゼロは、すべてが問題なかったことを意味します。
ただし、プログラムでエラー条件が検出された場合は、ゼロ以外の戻りコードで終了し、何かが間違っていることをシェルに通知する必要があります。より具体的にしたくない場合は、単に1を使用できます。
exit 1
ただし、他の番号を使用して、シェルに特定の種類の障害を通知することができます。たとえば、bash
自体は127 forprogram not foundを返します。そのため、スクリプトの動作を文書化すると、最後に実行されたプログラムの戻りコードを保持する特殊変数$?
の値をチェックすることにより、スクリプトの実行後に何か便利なことができます。
しばらく前にこれを調べたところ、たとえば、FreeBDSには man 3 sysexits
に記載されている終了コードに関して非常に便利な規則があることがわかりました。
一部のプログラマーは、1から始まる多くの異なるエラーコードを提供します。新しいバージョンでは、新しい特定のエラーコードが導入される可能性があるため、どのコードを使用するか
「その他すべてのエラー/詳細不明のエラー」?終了コードは255で切り捨てられるため、「その他のエラー」として99を選択します。
リターンステータスの範囲については、非常に長い間(UNIXで)慣習があります。
これらの個々の正と負の数値が正確に何を意味するかは、プログラマ次第です。時には、他の同様のプログラム(Gnuツールなど)との互換性のためにそれらを選択できます。 @Gnoucがいくつかリストしています。
いいえ、私は終了コード99の特別な重要性を認識していません。 「ビールが足りない」
見る: