スクリプトで時間を確認したい。午前06時から午前12時の間は、AMを出力する必要があります。午後01:00~午後06:00の間は午後を出力する必要があります。午後7時から午後10時の間は夜を出力し、午後11時から午前5時の間は夜を出力しなければなりません。
#!/bin/bash
# Prüft anhand der Zeit ob es Vormittag, Nachmittag, Abend oder Nacht ist
# $1 ist der Dateiname
# bash MehrfachSelektionScript.sh datei.txt -> aufrufen des Skripts
date=$(date +%H:%M)
case $date in
[06:00-12:00])
echo "Es ist Vormittag"
;;
[13:00-18:00])
echo "Es ist Nachmittag"
;;
[19:00-22:00])
echo "Es ist Abend"
;;
[23:00-05:00])
echo "Es ist Nacht"
;;
esac
私はこれを前に試しました
答え1
あなたはほぼ成功しました
date=$(date +%H)
case $date in
06|07|08|09|10|11|12)
echo "Es ist Vormittag"
;;
13|14|15|16|17|18)
echo "Es ist Nachmittag"
;;
19|20|21|22)
echo "Es ist Abend"
;;
23|00|01|02|03|04|05)
echo "Es ist Nacht"
;;
esac
- なぜ時間がかかるのですか?
- 常に列挙する必要があり、
bashがスコープを受け入れるという指示はありません。編集を参照してください。 - しばらく待つと、Perlの専門家がより短い解決策を提供すると確信しています。
編集:コスタスの提案に基づいて
case $date in
0[6-9]|1[012])
echo "Es ist Vormittag"
;;
1[3-8])
echo "Es ist Nachmittag"
;;
19|2[0-2])
echo "Es ist Abend"
;;
23|0[0-5])
echo "Es ist Nacht"
;;
esac