プロが教えるわが家の防犯対策術!

AIXのkshにおいて、case文の中で特定範囲に該当する場合に結果を真とするスクリプトを組みたいと思います。

例を挙げると
#!/bin/ksh
i=`date +%H`
case $i in
  今が6時から18時の場合は)
  echo "昼"
  ;;
  今が19時から5時の場合は)
  echo "夜"
  ;;
esac

といった具合です。
上記はものすごく単純化していますので、実際には条件はもっと大量になります(機密上詳しく申し上げることは出来ません)。

上記に該当するスクリプトを組みたい場合、
)の前の値はどのように指定すればよいのでしょうか?

A 回答 (1件)

ベタに書けば


06|07|08|09|10|11|12|13|14|15|16|17|18)
19|20|21|22|23|00|01|02|03|04|05)

ファイル名展開と同じものが使えるそうなので
0[6-9]|1[0-8]) #6時から18時の場合
19|2[0-3]|0[0-5]) #19時から5時の場合

となりますが....ifを使ったほうがすっきりしそうですね
    • good
    • 0
この回答へのお礼

回答ありがとうございました

お礼日時:2010/02/08 12:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!