我正在尝试编写一个简单的脚本来检查当前时间是在中午 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 ...)
而不是反引号。它更容易阅读,并允许您将多个命令包装成一个。