LinuxのCUIで使える&&はコマンド複数をAND演算で実行するために使う。このページではLinuxの&&についてお伝えしよう。
Linuxのターミナルで使う&&
複数コマンドを実行
bashシェルスクリプト上では「&&」はAND制御演算子となっている。
難しく聞こえるが単純に「コマンド1が成功したらコマンド2を実行する」ということだ。書式的には
コマンド1 && コマンド2
となる。
「;」との違い
「;」でも似たようなことができる。下記ページを参考にしてほしい。
「;」と「&&」の違いは、「&&」がコマンド1が成功した場合のみコマンド2が実行されるという点だ。
「;」でコマンドを連結する場合、コマンド1がエラーであっても、次のコマンドが実行される。
しかし、「エラーが起きた時点で動作を停止してほしい」という場合も多いはずだ。
「&&」を使用すると要望通りに動作する。複数のコマンドを一行で実行できるので便利だ。小技として頭にいれておこう。
実際にやってみよう
簡単な例
$ echo 123 && echo abc
無事に実行されているのがわかる。
次に本当にエラーが起きたときに、次のコマンドを実行せずに停止するのか、確かめてみよう。
意図的に存在しない「abc」というファイルを「ls」コマンドで表示しようとしてみるが、エラーとなる、「&&」を指定している場合次のコマンドは実行されない
$ ls abc && echo test
「echo」コマンドが実行されていないのが確認できた。
では逆にlsコマンドが成功した場合、本当に「echo test」は実行されるのか確認しよう。
$ touch abc
$ ls abc && echo test
無事に実行されていることが確認できた。
まとめ
このページではLinuxで使える「&&」についてお伝えした。「;」で構わない場合もあるかと思うが、「&&」も押さえておきたいところだ。
コメント