Linuxコマンド:コマンドを組み合わせて実行する方法

Linuxでコマンドを実行するときに、複数のコマンドを続けて実行したい場合があります。そんなときに便利な方法を紹介します。

動作環境

この記事は、以下の環境で実行した結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。

cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

使用例

# cmd1の標準出力をcmd2の標準入力に渡します。
cmd1 | cmd2

# cmd1に続けてcmd2を実行します。(cmd1の実行結果は考慮しません)
cmd1 ; cmd2

# cmd1の実行に成功した場合にのみ、cmd2を実行します。
cmd1 && cmd2

# cmd1の実行に失敗した場合にのみ、cmd2を実行します。
cmd1 || cmd2

# 複数のコマンドをひとまとまりとして扱います。
(cmd1; cmd2; cmd3) >testfile.log
Memo

複数コマンドをひとまとまりにすると、たとえば「(date; pwd; ls) >kekka.log」と実行することで、date、pwd、lsの実行結果をまとめてkekka.logファイルに書き込めます。ちなみに、この場合新しいシェル上でコマンドが実行されますが、現在のシェル上で実行させたいときは()ではなく{}を使用します。

まとめ

上に挙げたメタキャラクタをうまく使えば、よりコンパクトなコードでコマンドを連続実行できますね。

スポンサーリンク