コマンドの連続実行

連続実行

連続実行(; , &&, ||)

Linuxシェルでは、複数のコマンドを連続して実行するためにさまざまな方法があります。特に重要なのが、セミコロン(;)、ダブルアンパサンド(&&)、ダブルパイプ(||)です。これらの演算子を使うことで、コマンドの実行順序や条件を制御し、効率的なスクリプト作成やコマンドライン操作が可能になります。これらの連続実行コマンドの概要と基本的な使い方について解説します。

セミコロン(;

セミコロン(;)は、複数のコマンドを連続して実行するための最も基本的な方法です。各コマンドは独立して実行され、前のコマンドの成否に関係なく次のコマンドが実行されます。

基本構文

$ コマンド1; コマンド2; コマンド3

使用例

$ echo "Hello"; echo "World"; ls

この例では、echo "Hello"echo "World"lsの順にコマンドが実行されます。

ダブルアンパサンド(&&

ダブルアンパサンド(&&)は、前のコマンドが成功した場合のみ次のコマンドを実行します。前のコマンドが失敗した場合、次のコマンドは実行されません。

基本構文

$ コマンド1 && コマンド2

使用例

$ mkdir newdir && cd newdir

この例では、mkdir newdirが成功した場合にのみcd newdirが実行されます。mkdirが失敗した場合、cdは実行されません。

ダブルパイプ(||

ダブルパイプ(||)は、前のコマンドが失敗した場合にのみ次のコマンドを実行します。前のコマンドが成功した場合、次のコマンドは実行されません。

基本構文

$ コマンド1 || コマンド2

使用例

$ cd non_existing_dir || echo "Directory not found"

この例では、cd non_existing_dirが失敗した場合にのみecho "Directory not found"が実行されます。cdが成功した場合、echoは実行されません。

実際の使用例

1. 複数のコマンドを連続して実行

$ echo "Start"; ls; echo "End"

echo "Start"lsecho "End"が順に実行されます。

2. コマンドの成功を条件に次のコマンドを実行

$ touch file.txt && echo "File created"

touch file.txtが成功した場合にのみecho "File created"が実行されます。

3. コマンドの失敗を条件に次のコマンドを実行

$ rm non_existing_file || echo "File not found"

rm non_existing_fileが失敗した場合にのみecho "File not found"が実行されます。

4. 複合的な条件付き実行

$ mkdir project && cd project || echo "Failed to create or enter directory"

mkdir projectが成功した場合にcd projectが実行されます。mkdirまたはcdのいずれかが失敗した場合、echo "Failed to create or enter directory"が実行されます。

まとめ

Linuxの連続実行コマンド(;&&||)は、コマンドの実行順序や条件を制御するための強力なツールです。セミコロン(;)は順にコマンドを実行し、ダブルアンパサンド(&&)は前のコマンドが成功した場合に次のコマンドを実行し、ダブルパイプ(||)は前のコマンドが失敗した場合に次のコマンドを実行します。これらの演算子を活用することで、効率的なスクリプト作成やコマンドライン操作が可能となり、作業の効率が大幅に向上します。