`elif'意外..用于日期功能

Dil*_*eep 2 linux shell ksh

这是我的代码

CURR_MNTH=$(date +'%m' -d 'now')

if [$CURR_MNTH < 04]
    THIS_QTR=1
elif [$CURR_MNTH < 07] && [$CURR_MNTH > 03]
    THIS_QTR=2
elif [$CURR_MNTH < 10] && [$CURR_MNTH > 07]
    THIS_QTR=3
elif [$CURR_MNTH > 09]
    THIS_QTR=4
fi

echo $THIS_QTR
Run Code Online (Sandbox Code Playgroud)

我试图用上面的逻辑得到当前季度,但提示说我有'elif'意外错误..有人可以请帮助我

Vad*_*nda 6

如果您使用Bash,则会出现许多错误:

  • if声明后没有分号;
  • 括号和条件表达式之间没有空格;
  • 连词应在同一组括号内给出;
  • 考虑使用-lt-gt进行价值测试.

正确的代码如下所示:

CURR_MNTH=$(date +'%m' -d 'now')

if [[ $CURR_MNTH -lt 4 ]]; then
    THIS_QTR=1
elif [[ $CURR_MNTH -lt 7 && $CURR_MNTH -gt 3 ]]; then
    THIS_QTR=2
elif [[ $CURR_MNTH -lt 10 && $CURR_MNTH -gt 7 ]]; then
    THIS_QTR=3
elif [[ $CURR_MNTH -gt 9 ]]; then
    THIS_QTR=4
fi

echo $THIS_QTR
Run Code Online (Sandbox Code Playgroud)

考虑下次在您的代码上运行http://www.shellcheck.net/.