使用时间检查是否有陈述的问题-BASH

时间:2019-03-26 18:47:10

标签: bash

我目前正在检查.sh脚本只是为了做一些基本的事情。

copy/paste

我的问题是我试图使用系统当前时间在if语句中使用,并取决于不同输出的时间。

现在,脚本会输出所有“ good ....”回声,并且不会根据时间输出单个回声。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

问题出在您的条件上,所有条件都允许任何给定值,您是否想使用&&而不是||

答案 1 :(得分:0)

如果您使用elif构造来编写它,并从以后开始,然后逐步解决,那么会容易得多。

chmod +x catbash.sh

currenttime=$(date +%H:%M)
if [[ "$currenttime" > "19:59" ]]; then echo "Good Night ${USER}"
elif [[ "$currenttime" > "16:59" ]]; then echo "Good Evening ${USER}"
elif [[ "$currenttime" > "11:59" ]]; then echo "Good Afternoon ${USER}"
elif [[ "$currenttime" > "05:59" ]]; then echo "Good Morning ${USER}"
else echo "Good Night ${USER}"