web-dev-qa-db-ja.com

99番出口とはどういう意味ですか?

99番出口とは何か、なぜそれを使用するのか、そして99番出口の重要な用途は何かを知りたい。

たとえば、exit 99を使用しています。

4
Java_Alert

特定のプログラムのコンテキスト内にある場合を除いて、コード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.
22
Chris Down

@Chris Downに加えて、シェル用に予約されているいくつかの戻りコードがあり、それらには特別な意味があります。

RETVAL   Meaning

1        General errors
2        Misusage
127      Command not found

詳細は this を参照してください。

13
cuonglm

通常、ある時点でスクリプトを終了する場合:

exit 0

シェルは戻りコードとして0を取得します。このゼロは、すべてが問題なかったことを意味します

ただし、プログラムでエラー条件が検出された場合は、ゼロ以外の戻りコードで終了し、何かが間違っていることをシェルに通知する必要があります。より具体的にしたくない場合は、単に1を使用できます。

exit 1

ただし、他の番号を使用して、シェルに特定の種類の障害を通知することができます。たとえば、bash自体は127 forprogram not foundを返します。そのため、スクリプトの動作を文書化すると、最後に実行されたプログラムの戻りコードを保持する特殊変数$?の値をチェックすることにより、スクリプトの実行後に何か便利なことができます。

しばらく前にこれを調べたところ、たとえば、FreeBDSには man 3 sysexits に記載されている終了コードに関して非常に便利な規則があることがわかりました。

2
Jacobo de Vera

一部のプログラマーは、1から始まる多くの異なるエラーコードを提供します。新しいバージョンでは、新しい特定のエラーコードが導入される可能性があるため、どのコードを使用するか
「その他すべてのエラー/詳細不明のエラー」?終了コードは255で切り捨てられるため、「その他のエラー」として99を選択します。

0
Walter A

リターンステータスの範囲については、非常に長い間(UNIXで)慣習があります。

  • 0は成功を意味します
  • 正の数値は小さな問題を意味しますが、基本的にはタスクが完了しました
  • 負の数は重大なエラーを意味します(例:disk-full、file-not-found)

これらの個々の正と負の数値が正確に何を意味するかは、プログラマ次第です。時には、他の同様のプログラム(Gnuツールなど)との互換性のためにそれらを選択できます。 @Gnoucがいくつかリストしています。

いいえ、私は終了コード99の特別な重要性を認識していません。 「ビールが足りない」

見る:

0
smci