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 && $btrueに評価されます 変数またはステートメントの両方が true の場合 - 論理的または -
$a OR $bで示されます または$a || $btrueに評価されます 変数またはステートメントのいずれかが 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