bash スクリプトの if-else ステートメントは、他のプログラミング言語と似ています。プログラムが決定を下すための方法です。
if-else
で ステートメントの場合、ステートメントのブロックの実行は if
の結果に基づいて決定されます
Bash If-Else ステートメントの構文
if-else
の構文 bash のステートメントは次のとおりです:
if [condition]
then
//if block code
else
// else block code
fi
条件が true
と評価された場合 、if
ブロック コードが実行され、条件が false
と評価された場合 次に else
ブロック コードが実行されます。
else ステートメントと else コード ブロックはオプションです。
if
を終わらせる必要があります fi
を使用したステートメント キーワード。
条件付き比較
条件構造で使用される式は、true
のいずれかに評価される必要があります。 または false
.式は、単一の文字列または変数にすることができます。
- 未満 - 表記:
$a -lt $b
または$a < $b
- より大きい - 表記:
$a -gt $b
または$a > $b
- 以下 - 表記:
$a -le $b
または$a <= $b
- 以上 - 表記:
$a -ge $b
または$a >= $b
- 等しい - 表記:
$a -eq $b
または$a == $b
- 等しくない - 表記:
$a -ne $b
または$a != $b
論理演算子
if
内の式 ステートメントは、複数の比較の論理的な組み合わせにすることもできます。
論理演算子は次のとおりです:
- 論理的で -
$a AND $b
で示される または$a && $b
true
に評価されます 変数またはステートメントの両方が true の場合 - 論理的または -
$a OR $b
で示されます または$a || $b
true
に評価されます 変数またはステートメントのいずれかが true の場合
例:
#!/bin/bash
first_name="John"
last_name="Doe"
if [[ $first_name = "John" && $last_name = "Doe" ]]
then
echo 'hello John Doe'
fi
Bash if の例
if
statement は単純な条件ステートメントです。 if[]
内の条件が true
に評価されます 次に if
コード ブロックが実行されます。
例:
#!/bin/bash
read -p "Enter a number: " mynumber
if [ $mynumber -gt 10 ]
then
echo "The number you entered is greater than 10"
fi
注:上記の例では、10 未満の数値を入力すると、何も出力されません。 Bash if-else の例
if
の結果が 状態は false
です else
のコード ブロックが存在する場合、ブロックが実行されます。
例:
#!/bin/bash
read -p "Enter a number: " mynumber
if [ $mynumber -gt 10 ]
then
echo "The number you entered is greater than 10"
else
echo "The number you entered is less than 10"
fi
Bash if-elif-else の例
elif
if
が複数ある場合は (else if) を使用
例:
#!/bin/bash
read -p "Enter your exam grade: " grade
if [ $grade -ge 80 ]
then
echo "You got A"
elif [ $grade -ge 70 ]
then
echo "You got B"
elif [ $grade -ge 60 ]
then
echo "You got C"
else
echo "Fail"
fi
ネストされた Bash の例
if
をネストすることもできます
例:
#!/bin/bash
read -p "Enter value of a :" a
read -p "Enter value of b :" b
read -p "Enter value of c :" c
if [ $a -gt $b ]
then
if [ $a -gt $c ]
then
echo "a is greatest"
else
echo "c is greatest"
fi
else
if [ $b -gt $c ]
then
echo "b is greatest"
else
echo "c is greatest"
fi
fi