我正在尝试测试一个日期...如果它在这两个时间帧之间我要打印它们...... 但我得到错误。这是我的剧本
<InstallExecuteSequence>
<Custom Action='RemoveAlelionFolder' After="InstallInitialize">
Installed AND NOT UPGRADINGPRODUCTCODE
</Custom>
<RemoveExistingProducts After="InstallValidate"/>
</InstallExecuteSequence>
我尝试使用-le并给我:期望整数表达式 -gt和-lt:期望的整数表达式 我还使用了&#39; &lt; &#39;和&#39; &gt; &#39;并告诉我:没有这样的文件或目录。
我需要仅使用时间日期来完成此工作...而不是使用int
因为我将从数据库中提取它并将 today_time 替换为db的时间。
答案 0 :(得分:2)
您的输出不是数字,而是字符串,如:
[sahaquiel@sahaquiel-PC ~]$ date +%H:%M:%S --date '-1 min'
13:40:30
将其转换为Unixtime并比较清晰的数字,例如:
today_time=$(date +%H:%M:%S --date '-1 sec')
today_time_u=$(date +%s --date '-1 sec')
today_dow=$(date +"%u")
today_less=$(date +%H:%M:%S --date '-1 min')
today_less_u=$(date +%s --date '-1 min')
today_more=$(date +%H:%M:%S --date '+1 min')
today_more_u=$(date +%s --date '+1 min')
echo $today_less
echo $today_time
echo $today_more
if [ $today_less_u -gt $today_time_u -a $today_time_u -lt $today_more_u ]; then
echo "$today_less"
echo "$today_time"
echo "$today_more"
else
echo no
fi
再一次,在你的例子中,$today_less
是当前日期 - 1分钟; $today_time
是当前日期 - 1秒;那么,$ today_time&gt; $ today_less 每次,您的if [ $today_less_u -gt $today_time_u
部分每次都会false
,因此除了echo no
声明中的else
之外,您将无法获得任何内容。