🐚

Bash の基本: Control Operator

に公開

Control Operatorの用途

複数のコマンドをどのように実行するのかを制御します。例えば、cmdA && cmdB とした場合、cmdA が正常終了した場合のみ cmdB が実行されます。

Control Operatorの種類

種類 意味
A;B Aのexit codeに関わらず、Aの次にBが実行されます
A&&B AND。Aが成功した場合のみ、Bが実行されます
A||B OR。Aが失敗した場合のみ、Bが実行されます
A|B AのstdoutをBのstdinにリダイレクトします。パイプが使われるとどちらもsubshellで実行されます
(A) subshellで実行します。$(コマンド置換)、<(プロセス置換)

Meta character

次の文字も Bash においてロジックの流れを制御します(理由は分かりませんが、ドキュメント上は Control Operator とは区別されています)。

種類 意味
>, >> ダイレクト。>は上書き、 >>は追記です
2>, &> >はstderrを、&>はstdoutとstferrをリダイレクトします
whitespace ( \n ) Bash が単語の区切りを探す際に目印とします

補足

  • Bash における exit code:
    • 0 - stdin
    • 1 - stdout
    • 2 - stderr
  • 2> /dev/null(bit bucket) はエラーを破棄する

Discussion