【发布时间】:2017-05-02 15:23:01
【问题描述】:
我必须用一条小消息问候我的用户: 问候语应根据一天中的时间显示“早上好、下午好和晚上好”。
我的代码(与时间相关)没有完全工作,因为它总是显示“晚上好”,我没有发现任何明显的错误吗?
echo "please enter a username:"
read username
username=$(getent passwd "$USER" |cut -d ':' -f 5 | ',' -f 1)
echo "Welcome $username" | cat >> output.txt
current_data_time = "'date +%Y%m%d%H%M%S'";
echo $current_data_time;
TIME=$(date +H")
hours= date +"%H | sed -e 's/^0/g'
if [ $TIME -lt 12 ]; then
echo "Good morning $username"
elif [ $TIME -lt 18 ]]; then
echo "Good afternoon $username"
else
echo "Good evening $username"
fi
【问题讨论】:
-
试试
getent passwd "$USER"... -
尝试先运行脚本,看看你得到的错误,然后修复它们。有几个地方的脚本包含您在脚本其他地方使用过的内容的明显拼写错误。
-
请参阅minimal reproducible example 和How do I ask a good question?。 StackOverflow 问题应该专注于单个特定问题,并删除与该问题无关的任何内容。在这里,您有一大堆与问题无关的代码,并且根本没有描述问题中出现的问题。
-
顺便说一句,这个练习来自哪里?
-
在此处询问代码之前,您也可以先解决shellcheck.net 可以找到的任何问题。