![스크립트에서 실제 시간을 어떻게 확인할 수 있나요?](https://linux55.com/image/73748/%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%20%EC%8B%A4%EC%A0%9C%20%EC%8B%9C%EA%B0%84%EC%9D%84%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%99%95%EC%9D%B8%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
스크립트에서 시간을 확인하고 싶습니다. 오전 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 전문가가 더 짧은 솔루션을 제공할 것이라고 확신합니다.
편집 : Costas의 제안에 기초
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