所以我是bash的新手,我必须编写一个脚本,其中包括动态回显带有更改时间戳HH:m m的行。
所以当我说
上海运行。上海03:40 05:40
它应该在给定范围内一直回响
例:03:31 03:32。。。。。。。。05:39 05:40
我知道循环很简单,但我想不通,有什么帮助吗?
我有一个不太好的代码,到目前为止还不能工作。
echo "Enter from Hour:"
read fromhr
echo "Enter from Min:"
read frommin
echo "Enter to Hour:"
read tohr
echo "Enter to Min:"
read tomin
while [ $fromhr -le $tohr ]; do
while [ $frommin -le $tomin ]; do
echo "$fromhr:$frommin"
if [ $frommin -eq 60 ]; then
frommin=0
break
fi
((frommin++))
done
if [ $fromhr -eq 24 ]; then
fromhr=0
fi
((fromhr++))
done
最佳答案
请注意,如果您将from小于to进行比较,则不太可能达到小时/日期更改。比方说,从20:00到05:00的迭代甚至不会发生;如果从12:38到17:12的迭代,则不会有任何分钟的更改(内环的条件立即为false)。建议采取一些步骤。
将每个条件的运算符更改为-ne' rather than
-le'。
在相应的溢出检查之前移动两个增量(frommin++
和fromhr++
)(否则您将在输出中持续看到24小时60分钟)。
试试这个,看看你是不是更想美化它。