このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Linux】コマンドの実行をアレンジする

複数のコマンドを実行する方法

 Linuxシェルでは、複数のコマンドを一度に実行するためにいくつかの方法があります。これらの方法を使用すると、コマンドの実行順序や条件を制御できます。

複数コマンドの実行方法

方法説明使用例
コマンド1; コマンド2両方のコマンドを順次実行します。1つ目のコマンドが成功するかどうかに関係なく、2つ目のコマンドが実行されます。echo Hello; echo World
コマンド1 && コマンド21つ目のコマンドが成功(終了ステータスが0)した場合のみ、2つ目のコマンドが実行されます。echo Hello && echo World
コマンド1 || コマンド21つ目のコマンドが失敗(終了ステータスが0以外)した場合のみ、2つ目のコマンドが実行されます。echo Hello || echo World
複数コマンドの実行方法

コマンドの使用例と解説

1.cd /etc; pwd

・「cd /etc; pwd」コマンドを実行します。

 cd /etc コマンドでディレクトリを /etc に変更し、次に pwd コマンドで現在のディレクトリを表示します。セミコロン (;) を使用することで、1つ目のコマンドが成功するかどうかに関係なく、2つ目のコマンドが実行されます。結果として、/etc が表示されます。

user01@ubuntu-vm:~$ cd /etc; pwd
/etc

・「cd」コマンドを実行して、ホームディレクトリに移動します。

user01@ubuntu-vm:/etc$ cd
user01@ubuntu-vm:~$ 

2.cd /etc && pwd

・「cd /etc && pwd」コマンドを実行します。

 cd /etc コマンドが成功した場合のみ pwd コマンドが実行されます。アンド (&&) を使用することで、1つ目のコマンドが成功したときのみ2つ目のコマンドが実行されます。cd /etc が成功した場合、結果として /etc が表示されます。

user01@ubuntu-vm:~$ cd /etc && pwd
/etc

・「cd」コマンドを実行して、ホームディレクトリに移動します。

user01@ubuntu-vm:/etc$ cd
user01@ubuntu-vm:~$ 

3.cd etc && pwd

・「cd etc && pwd」コマンドを実行します。

  cd etc コマンドが成功した場合のみ pwd コマンドが実行されます。etc ディレクトリが存在する場合は、pwd コマンドによってそのディレクトリのパスが表示されます。存在しない場合はエラーメッセージが表示され、pwd は実行されません。

user01@ubuntu-vm:~$ cd etc && pwd
bash: cd: etc: そのようなファイルやディレクトリはありません
user01@ubuntu-vm:~$ 

4.cd etc || pwd

・「cd etc || pwd」コマンドを実行します。

 cd etc コマンドが失敗した場合のみ pwd コマンドが実行されます。オア (||) を使用することで、1つ目のコマンドが失敗した場合にのみ2つ目のコマンドが実行されます。cd etc が失敗した場合、結果として現在のディレクトリが表示されます。例えば、etc ディレクトリが存在しない場合に pwd コマンドが実行され、現在のディレクトリが表示されます。

user01@ubuntu-vm:~$ cd etc || pwd
bash: cd: etc: そのようなファイルやディレクトリはありません
/home/user01
user01@ubuntu-vm:~$ 

まとめ

 複数のコマンドを実行する方法には、それぞれ異なる動作特性があります。これらを理解して、目的に応じて適切な方法を選択することが重要です。

 例えば、複数のコマンドを順次実行したい場合はセミコロン(;)を使用し、1つ目のコマンドが成功した場合にのみ2つ目のコマンドを実行したい場合はアンド(&&)を使用します。

 また、1つ目のコマンドが失敗した場合にのみ2つ目のコマンドを実行したい場合はオア(||)を使用します。これらの方法を適切に使い分けることで、シェルスクリプトやコマンドライン操作を効率的に行うことができます。