bashスクリプトプログラミングcase文
Case文は複雑なif文を簡略化するために使用されます
ケース文の構文フォーマット:
caseのpatternで使用できるモード:
a|b:aまたはb
*:任意の長さの任意の文字
?: 任意の1文字
[]:範囲の指定
case文を使用して、上記のコードを書き換えます.次のようにします.
#!/bin/bash
while true; do
read -p "Enter your score:" score
if [ "$score" == "quit" ]; then
exit 0
elif [ $score -lt 60 ]; then
echo "stupid"
break
elif [[ $score -ge 60 && $score -lt 70 ]]; then
echo "C"
break
elif [[ $score -ge 70 && $score -lt 80 ]]; then
echo "B"
break
elif [[ $score -ge 80 && $score -lt 90 ]]; then
echo "A"
break
elif [ $score -ge 90 ]; then
echo "A+"
break
else
continue
fi
done
ケース文の構文フォーマット:
case expression in
pattern1)
suite1
;;
pattern2)
suite2
;;
...
patternn)
suiten
;;
*)
other_suiten
;;
esac
caseのpatternで使用できるモード:
a|b:aまたはb
*:任意の長さの任意の文字
?: 任意の1文字
[]:範囲の指定
case文を使用して、上記のコードを書き換えます.次のようにします.
#!/bin/bash
while true; do
read -p "Enter your score:" score
case $score in
[1-5][0-9])
echo "stupid"
;;
6[0-9])
echo "C"
;;
7[0-9])
echo "B"
;;
8[0-9])
echo "A"
;;
9[0-9])
echo "A+"
;;
100)
echo "excelent"
;;
quit)
exit 0
;;
*)
continue
;;
esac
done