如何在 If 语句中进行数学运算

如何在 If 语句中进行数学运算

我有一个 Bash 脚本,它只能在特定的时间窗口(从午夜到凌晨 00:15)执行。但如果我执行该函数,我会收到[: too many arguments一条错误消息。我该如何解决?我还是想用 Bash。我正在使用 Ubuntu Server 20.04 LTS。

脚本:

currTime=`date +%H%M`
check_time_to_run() {
    tempTime=$1
    if [ $tempTime -gt 0 -a $tempTime -lt 015 ]; then
        echo "Time is after 0 AM and before 0:10 AM. Restarting Server."
    else
      echo "Time is not between 0 AM and 0:15 AM. Aborting restart."
      exit 1
    fi
}

答案1

你可以尝试分解你的陈述:

if [ $tempTime -gt 015 ] && [ $tempTime -lt 0 ]; then
  stuff...
fi

或使用双括号来测试表达式的二进制结果:

 if [[ $tempTime -gt 015 && $tempTime -lt 0 ]]; then
  stuff...
 fi

相关内容