私は次のことをしなければなりません:
入力時にレベルを表示するケースの説明を作成します。ループや条件はありません。
- A=90-100、B=80-89、C=70-79、D=60-69、F=0-59
これが私が今まで持っているものです:
echo -n "What is your test score? (in percentage): "
read percentage
case $name in
9?) echo "A" ;;
8?) echo "B" ;;
7?) echo "C" ;;
6?) echo "D" ;;
5?) echo "F" ;;
4?) echo "F" ;;
3?) echo "F" ;;
2?) echo "F" ;;
1?) echo "F" ;;
[0-9]) echo "F" ;;
*) echo "Please enter another number"
read percentage
;;
esac
範囲(例:59-0)を使用して説明を作成するにはどうすればよいですか?
答え1
これにより、要件を満たす必要があります。
#!/bin/bash
echo -n "What is your test score? "
read score
case $score in
100) echo "A" ;;
9[0-9]) echo "A" ;;
8[0-9]) echo "B" ;;
7[0-9]) echo "C" ;;
6[0-9]) echo "D" ;;
*) echo "F" ;;
esac
最初は9 [0-9] | 100)を使用しましたが、これは条件文の規則に違反しているようです。
101またはその他の「範囲外」の値を入力しようとすると、Fが返されます。私はこのようなことが決して起こらないと仮定しています。
答え2
これも動作します -
echo -n "What is your test score? (in percentage): "
read per
case $per in
([9][0-9]|100) echo "A" ;;
([8][0-9]) echo "B" ;;
([7][0-9]) echo "C" ;;
([6][0-9]) echo "D" ;;
[0-9]|[1-5][0-9]|59) echo "F" ;;
*) echo "Please enter another number"
read percentage;;
esac