Проверьте bcache, который интегрируется в ядро магистрали от 3,10, но который должен также работать с более старыми ядрами с небольшим количеством усилия - необходимо будет скомпилировать собственное, с помощью обеспеченных патчей. (Это не столь страшно, как это звучит!)
Существует также минимальное сравнение dm-кэша и bcache здесь.
Я бы сделал это, оно должно отвечать требованиям.
#!/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), но думаю, что это нарушает правило об условных условиях.
Оно вернет F, если вы попытаетесь ввести 101 или любое другое значение "вне диапазона". Я сделал это в предположении, что этого никогда не случится.
Это также будет работать-
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