このトピックでは、使用方法を理解します。 if ステートメント Bash スクリプトで自動タスクを完了します。
Bash if ステートメントは有益です。これらは、ステートメントの実行のシーケンシャル フローで条件付きタスクを実行するために使用されます。通常、if ステートメントを使用すると、Bash スクリプトで決定を下すことができます。これらは、設定した条件に基づいてコードを実行するかどうかを決定するのに役立ちます。
基本的な if ステートメント
基本的な if ステートメントは、特定の条件が true の場合に、指定された一連のアクションのみを実行するように命令します。そうでない場合は、それらのアクションを実行しないでください。 If ステートメントは次の形式に基づいています。
構文
if [ expression ]; then statements fi
間の声明 それから そして なれ (逆方向の場合) は、式 (角括弧内) が true の場合にのみ実行されます。
注記:最初の行で使用されているスペースと、最初の行の終わりにあるセミコロンに注意してください。両方とも使用が必須です。if 条件文で終わるなれ。
- AND 演算子で複数の条件を使用する場合:
if [ expression_1 ] && [ expression_2 ]; then statements fi
- OR 演算子で複数の条件を使用する場合:
if [ expression_1 ] || [ expression_2 ]; then statements fi
- AND 演算子と OR 演算子を含む複合式の場合は、次の構文を使用できます。
if [ expression_1 && expression_2 || expression_3 ]; then statements fi
以下に、if ステートメントの使用法を示すいくつかの例を示します。
例1
この例では、ユーザーが任意の数値を入力し、その値が 125 より大きいかどうかを確認します。
#!/bin/bash read -p ' Enter number : ' number if [ $number -gt 125 ] then echo 'Value is greater than 125' fi
出力
数値 159 を入力すると、出力は次のようになります。
例 2
この例では、次の使用法を示します。 if ステートメント 2 つの文字列を比較する単純なシナリオを使用します。
#!/bin/bash # if condition is true if [ 'myfile' == 'myfile' ]; then echo 'true condition' fi # if condition is false if [ 'myfile' == 'yourfile' ]; then echo 'false condition' fi
出力
例 3
この例では、if ステートメントを使用して数値を比較する方法を示します。
#!/bin/bash #if condition (greater than) is true if [ 10 -gt 3 ]; then echo '10 is greater than 3.' fi #if condition (greater than) is false if [ 3 -gt 10 ]; then echo '3 is not greater than 10.' fi #if condition (lesser than) is true if [ 3 -lt 10 ]; then echo '3 is less than 10.' fi #if condition (lesser than) is false if [ 10 -lt 3 ]; then echo '10 is not less than 3.' fi #if condition (equal to) is true if [ 10 -eq 10 ]; then echo '10 is equal to 10.' fi #if condition (equal to) is false if [ 10 -eq 9 ]; then echo '10 is not equal to 9' fi
出力
例 4
この例では、AND 演算子を使用して if 式に複数の条件を含める方法を定義します。
#!/bin/bash # TRUE && TRUE if [ 8 -gt 6 ] && [ 10 -eq 10 ]; then echo 'Conditions are true' fi # TRUE && FALSE if [ 'mylife' == 'mylife' ] && [ 3 -gt 10 ]; then echo 'Conditions are false' fi
出力
例5
この例では、OR 演算子を使用して if 式に複数の条件を含める方法を定義します。
#!/bin/bash # TRUE || FALSE if [ 8 -gt 7 ] || [ 10 -eq 3 ]; then echo ' Condition is true. ' fi # FALSE || FALSE if [ 'mylife' == 'yourlife' ] || [ 3 -gt 10 ]; then echo ' Condition is false. ' fi
出力
例6
この例では、AND と OR を使用して if 式に複数の条件を含める方法を定義します。
#!/bin/bash # TRUE && FALSE || FALSE || TRUE if [[ 10 -eq 10 && 5 -gt 4 || 3 -eq 4 || 3 -lt 6 ]]; then echo 'Condition is true.' fi # TRUE && FALSE || FALSE if [[ 8 -eq 8 && 8 -gt 10 || 9 -lt 5 ]]; then echo 'Condition is false' fi
出力
Bash スクリプトの If ステートメントのオプション
If ステートメントには、特定のタスクを実行するための多くのオプションが含まれています。これらのオプションは、ファイル操作、文字列操作などに使用できます。主に使用されるオプションをいくつか次に示します。
オプション (演算子) | 説明 |
---|---|
!表現 | EXPRESSION が false かどうかを確認します。 |
-n 文字列 | STRING の長さがゼロより大きいかどうかを確認します。 |
-z 文字列 | STRING の長さがゼロ (つまり、空である) かどうかを確認するには |
文字列1 == 文字列2 | STRING1 が STRING2 と等しいかどうかを確認します。 |
STRING1 != STRING2 | STRING1 が STRING2 と等しくないかどうかを確認します。 |
INTEGER1 -eq INTEGER2 | INTEGER1 が INTEGER2 と数値的に等しいかどうかを確認します。 |
INTEGER1 -gt INTEGER2 | INTEGER1 が INTEGER2 より数値的に大きいかどうかを確認します。 |
INTEGER1 -lt INTEGER2 | INTEGER1 が INTEGER2 より数値的に小さいかどうかを確認します。 |
-d ファイル | FILE が存在し、それがディレクトリであるかどうかを確認します。 |
-e ファイル | ファイルが存在するかどうかを確認します。 |
-r ファイル | ファイルが存在し、読み取り権限が付与されているかどうかを確認します。 |
-s ファイル | FILE が存在し、そのサイズが 0 より大きい (つまり、空ではない) かどうかを確認します。 |
-w ファイル | ファイルが存在し、書き込み権限が付与されているかどうかを確認します。 |
×ファイル | ファイルが存在し、実行権限が付与されているかどうかを確認します。 |
ネストされた If
bash スクリプト内では、必要なだけ「if ステートメント」を適用できます。 if ステートメントを別の「if ステートメント」内で使用することもできます。これは、ネストされた If ステートメントとして知られています。
例
この例では、ネストされた if 式を使用して、「指定された数値が 50 より大きく、かつ偶数であるかどうか」を求めます。
#!/bin/bash #Nested if statement if [ $1 -gt 50 ] then echo 'Number is greater than 50.' if (( $1 % 2 == 0 )) then echo 'and it is an even number.' fi fi
出力
引数値を 100 として入力すると、出力は次のようになります。
結論
このトピックでは、bash if ステートメントを使用したステートメント実行のシーケンシャル フローで条件分岐を使用する方法について説明しました。