如何在 Shell 脚本中比较小时数

如何在 Shell 脚本中比较小时数

我正在尝试编写一个简单的脚本来检查当前时间是在中午 12:00 之前还是之后。

#!/bin/bash
var1=`date +"%T"` # error "not an integer"
var2='12:00:00'
if [ $var1 -lt $var2 ]; then # always false
    echo "Good morning!"
else
    echo "Good afternoon!"
fi

该错误表明 var1 必须是整数,并且条件始终为 false。我需要一些帮助。非常感谢。

答案1

您使用的测试只能比较整数。 date +%T生成包含 的字符串:,因此您的测试失败。

您可以使用date +%H并设置var2=12.

或者您可以使用date +%H%M%S并设置var2=120000.

话虽这么说,我建议您使用$(date ...)而不是反引号。它更容易阅读,并允许您将多个命令包装成一个。

相关内容