case + как реализовать равный или меньший или больший в случае синтаксиса case
Моя цель - проверить диапазон числа с помощью (только с - case + esac) и вывести диапазон
так например
если число находится в диапазоне от 0 до 80, регистр будет напечатан
>=0<=80
или если диапазон находится между 81-100, то случай напечатает
>=81<=100
и так далее....
проблема с моим скриптом только для печати>=0<=90, только если число между 0-9?
как исправить мой скрипт, чтобы он печатался в соответствии с диапазоном номеров?
#!/bin/ksh
read number
case $number in
[0-80]) echo ">=0<=80";;
[81-100]) echo ">=81<=100";;
[101-120]) echo ">=101<=120";;
[121-300]) echo ">=121<=300";;
esac
1 ответ
Решение
В zsh (с которым ksh связана в моей системе) вам нужно использовать <>
для числовых диапазонов:
case $number in
<0-80>) echo ">=0<=80";;
<81-100>) echo ">=81<=100";;
<101-120>) echo ">=101<=120";;
<121-300>) echo ">=121<=300";;
esac