はじめに
「;」で区切られているコマンドを見つけ、意味を調べるうちに他にも複数コマンドを扱う文字があることを知ったので、備忘録的まとめになります。
まとめ
コマンド | 読み方 | 内容 |
---|---|---|
; | セミコロン | 順次実行 |
&& | アンパサントアンパサント | 前のコマンドが成功した場合に、順次実行 |
| | パイプ | 次のコマンドへ出力内容を渡す |
|| | パイプパイプ | 前の処理が失敗した場合に、順次実行 |
& | アンパサント | バックグラウンドジョブとして実行 |
; (セミコロン)
前のコマンドが終わり次第、次のコマンドが実行されます。
前のコマンドが成功してようが、失敗してようが、次のコマンドへすすみます。
例)
$ echo Hello ; echo World
Hello
World
&& (アンパサントアンパサント)
前のコマンドが成功した場合に、次のコマンドを実行します。
例)
$ ls hogehoge && echo hoge
ls: hogehoge: No such file or directory
| (パイプ)
前のコマンドの出力結果を、次のコマンドへ渡すことができます。
この様な構造だった場合
root/
┗ hogehoge/
┠ a.txt
┠ b.txt
┗ c.txt
例)
$ ls hogehoge | grep b
b.txt
|| (パイプパイプ)
前のコマンドが失敗した場合に次のコマンドを実行します。
例)(hogehogeというディレクトリが存在していなかった場合)
$ ls hogehoge && echo hoge
ls: hogehoge: No such file or directory
hoge
例)(hogehogeというディレクトリが存在していた場合)
$ ls hogehoge && echo hoge
a.txt b.txt c.txt
& (アンパサント)
「&&」と似ているのですが、内容は今までのものとは異なります。
「&」をつけたコマンドは、バックグラウンドジョブとして実行されます。
例)
$ sleep 10
(10秒経つまで次の入力ができない)
例)
$ sleep 10 &
(即時次の入力ができる)
例)(「&」を挟んでコマンドを入力することも可能)
$ sleep 10 & echo Hello
[2] 17939
Hellow
[2] - done sleep 10
参考