終了99とは何か、なぜそれを使用するのか、そしてそれの重要な使用法は何かを知りたい。

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

コメント

回答

コード99で終了することに意味はありませんが、おそらく次のコンテキストにあります。特定のプログラム。

いずれの場合も、exitは、特定の終了コード(この場合は99)でシェルを終了します。詳細については、

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. 

コメント

  • 必要に応じてbashのような戻りコードで特定の何かを取得するには、$?を使用します。
  • 完全ではありません-99はゼロではないため、indiプログラムが何らかの理由で失敗したことを示します。
  • @psusiアプリケーションには、失敗とは関係がないが他の実行条件を示すゼロ以外の終了コードがたくさんあります(多くのプログラムはこれを使用して偽りを示します)または、失敗ではなく最適でない実行など)。プログラムが正しくないことを知らずに、特定の終了ステータスが失敗を示していることを必ず主張すること。 '不明なプログラムで" 99 "の意味を推測することはできません。
  • シェル、およびmakeを含む他のほとんどのツールは、ゼロ以外の終了値をエラーとして扱います。
  • これらを除いて、チェックのより大きなコンテキストではなく、単独での失敗を示します。真実のために。いずれにせよ、アプリケーションが定義されていない場合、一部の終了コードの意味を推測することを拒否します。

回答

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

RETVAL Meaning 1 General errors 2 Misusage 127 Command not found 

これをご覧ください。

コメント

  • @MrLister:はい、私のミスティポ、修正されました!
  • まだsがありません("水揚げ"?)

回答

通常、スクリプトを次のように終了した場合:

exit 0 

リターンコード。このゼロは、すべてがOKであることを意味します

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

exit 1 

ただし、を使用して特定のタイプの障害をシェルに通知できます。他の数値。たとえば、bash自体は program not found に対して127を返します。したがって、スクリプトの動作を文書化すると、後で何か役立つことができます。最後に実行されたプログラムの戻りコードを保持する特別な変数$?の値をチェックして実行します。

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

コメント

  • "シェルはリターンコードとして0を取得します"間違っています、パラメータのないexitは、最後のコマンド実行のステータスコードで終了します( pubを参照) s.opengroup.org/onlinepubs/009695399/utilities/exit.html
  • 長年の私の誤解により、答えが修正されます。
  • すばらしい、反対票が削除されました:)

回答

(Unixでは)非常に長年の慣例があります-ステータス範囲:

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

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

いいえ、コード99を終了する特別な意味を認識していません。使用されているのを見たことがありません。おそらく、「ビールが足りない」という意味です

参照:

コメント

  • そのUnix規則について聞いたことがありません。また、2つの参照は、その規則に関する主張をサポートしていません。
  • 最初の参照はそうです。 unixリターンステータスの正の負の数値で167万のグーグルヒットがあります。
  • で指定された負のリターン値が少数あります。 POSIX.1ですが、これらはプログラミングAPI用です

回答

一部のプログラマーは、さまざまなエラーコードを提供します。 新しいバージョンでは、新しい特定のエラーコードが導入される可能性があるため、
「他のすべてのエラー/不特定のエラー」に使用する必要があるコードは?出口コードは255で切り捨てられるため、「その他のエラー」として99を選択します。 。