Linuxでコマンドの間に「;」が入っていたら、そこで改行が入っていると思えばいい。「;」は区切り文字だ。
複数のコマンドを一行で実行したいときなどに使える。
Linuxのターミナルで使う「;」
複数コマンドを1行で実行
bashシェルスクリプトを眺めていると「コマンド1」のあとに「;」が入ってから「コマンド2」つまり「コマンド1;コマンド2」といったパターンが出現することがある。
この「;」は複数のコマンドを一行にまとめて記述したい場合に使用される。コマンド1が終了したらコマンド2を実行する。
日常のコマンドプロンプト上ではあまり意識することは少ないかもしれない。少々細かい話となるが、コマンドを一行でまとめることにより、より非対話的に、つまり自動化を進めることができる。知識として「知っていて損はない」だろう。
エラーが起こった時
「;」でコマンドを羅列した場合、コマンド1が成功しても失敗してもコマンド2が実行されてしまうという。
つまりエラーがあっても停止はしてくれない。ここは念頭において使用しよう。
もしそういった判別を行いたい場合は別途解説する「&&」や「||」を使用することになる。
実際にやってみよう
簡単な例
$ echo 123; echo abc
結果は以下のようになる。
ほか、例えばアプリケーションのコンパイルコマンドを一行にまとめたいときは
$ ./configure; make; sudo make install
などとすると「configure」から「make install」までを一行で完結させることが可能となっている、ただしconfigureやmakeの段階でエラーが発生しても停止しないので、「検証して結果がわかっている」状態での自動化のために使用する方がよいだろう。
まとめ
今ページではLinuxで複数コマンドを1行で実行するための「;」についてお伝えした。参考にしていただければ幸いだ。
コメント