我写了这段代码来回应一个问候语,这取决于它是什么时候,但是当我运行它时它没有显示任何错误,但也没有回应任何命令行.为了尝试进行故障排除,我注释掉了所有内容并只回显了时间变量,这很好.那么,我做错了什么?!
#!/bin/bash
time=$(date +%H)
case $time in
#check if its morning
[0-11] ) echo "greeting 1";;
#check if its afternoon
[12-17] ) echo "greeting 2";;
#check if its evening
[18-23] ) echo "greeting 3"
esac
解决方法:
[…]引入了一个字符类,而不是整数区间.因此,[18-23]与[138-2]相同,与[13]相同,因为8和2之间没有任何内容.
您可以使用以下内容作为修复:
case $time in
#check if its morning
0?|1[01] ) echo "greeting 1";;
#check if its afternoon
1[2-7] ) echo "greeting 2";;
#check if its evening
1[89]|2? ) echo "greeting 3"
esac
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。