使用AND OR运算符的Bash条件

Nam*_*Ngo 1 bash shell if-statement operators sh

我有一个bash shell,可以选择月份(mm)和年份(yyyy)或者时间(mmyyyy).我可以解析选项并将它们分配给变量.现在,我需要一些条件来检查这些变量.我需要的是:if(月和年)或时间然后继续显示用法.这是我的代码,似乎没有用.

if [[ -z $MONTH && -z $YEAR ]] || [[ -z $TIME ]]; then
    usage
    exit 1
else
    if [[ -z $TIME ]]; then
        echo $MONTH$YEAR
    else
        echo $TIME
    fi
fi
Run Code Online (Sandbox Code Playgroud)

rua*_*akh 5

你的逻辑有点落后.这个:

if [[ -z $MONTH && -z $YEAR ]] || [[ -z $TIME ]]; then
    usage
Run Code Online (Sandbox Code Playgroud)

("如果我错过了月份和年份,这是一个错误;或者,如果我有那些​​,但我错过了时间,这是一个错误")应该是这样的:

if [[ -z $MONTH || -z $YEAR ]] && [[ -z $TIME ]]; then
    usage
Run Code Online (Sandbox Code Playgroud)

("如果我失去了一个月或一年,我丢失的时间,这是一个错误").