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
Другие вопросы по тегам