Linux

case + 如何在 case 語法中實現等於或小於或大於

  • February 19, 2013

我的目標是使用(僅使用 - case + esac)驗證數字範圍,並列印範圍

所以例如

如果數字在 0-80 之間,將列印大小寫

>=0<=80

或者如果範圍在 81-100 之間,則將列印大小寫

>=81<=100

等等….

僅當數字在 0-9 之間時,我的腳本僅列印 >=0<=90 的問題?

如何修復我的腳本,讓它根據數字範圍列印?

#!/bin/ksh

read number 

case $number in 
   [0-80])  echo "&gt;=0&lt;=80";; 
   [81-100]) echo "&gt;=81&lt;=100";; 
   [101-120]) echo "&gt;=101&lt;=120";;
   [121-300]) echo "&gt;=121&lt;=300";;
esac 

在 zsh (我的系統上的 ksh 符號連結)中,您需要使用&lt;&gt;數字範圍:

case $number in
   &lt;0-80&gt;)  echo "&gt;=0&lt;=80";;
   &lt;81-100&gt;) echo "&gt;=81&lt;=100";;
   &lt;101-120&gt;) echo "&gt;=101&lt;=120";;
   &lt;121-300&gt;) echo "&gt;=121&lt;=300";;
esac

引用自:https://serverfault.com/questions/480185