2017-12-03 8 views

答えて

6

ifif COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi

条件に基づいてコマンドを実行します。

if COMMANDSリストが実行されます。終了ステータスが0の場合、 then COMMANDSのリストが実行されます。そうでなければ、elif COMMANDSのリストはそれぞれ であり、終了ステータスが0の場合、対応する then COMMANDSリストが実行され、ifコマンドが完了します。そうでない場合は、 else COMMANDSのリストが実行されます。何の条件が真でテストされなかった場合 構築物全体の終了ステータスは最後に実行されたコマンドの終了ステータスである、またはゼロ 。

終了ステータス: 実行された最後のコマンドのステータスを返します。

(強調や書式鉱山)。

else部分がありません場合は、コマンドが非ゼロのコードで終了をテストするのであれば、戻りコードは0です

(しかし、声明bashのある文は、常にゼロを返す場合です上記に含まれるhelp ifの強調部分に記載されているように、false)。

+1

*最後に実行されたコマンドの終了ステータス*であるため、ゼロを返さない可能性があります。 ls存在しないファイル。 '' echo $? 'は '1'を返します。 – cdarke

+1

@cdarke:私は、誰かがこの上で議論するつもりだったと確信していたので、私は私が 'ヘルプif'を言い換えた実現するまで、ノートを含めるように答えを編集し始めました。だから私は、読者が私が含んでいた 'help if'コンテンツを実際に読むことを望んで、編集をキャンセルしました。 –

+1

@cdarke、特に強調したコンテンツ:***構築物全体の終了ステータスは最後のコマンドの終了ステータスが実行され、*** **またはゼロ全く条件が真のテストない場合** –

関連する問題