【问题标题】:Bash condition with AND OR operators带有 AND OR 运算符的 Bash 条件
【发布时间】:2012-03-12 14:52:00
【问题描述】:

我有一个 bash shell,它可以选择月份 (mm) 和年份 (yyyy) 或时间 (mmyyyy)。 我可以解析选项并将它们分配给变量。现在,我需要一些条件来检查这些变量。我需要的是:如果(月和年)或时间然后继续,否则显示使用情况。这是我的代码,它似乎不起作用。

if [[ -z $MONTH && -z $YEAR ]] || [[ -z $TIME ]]; then
    usage
    exit 1
else
    if [[ -z $TIME ]]; then
        echo $MONTH$YEAR
    else
        echo $TIME
    fi
fi

【问题讨论】:

    标签: bash shell if-statement operators sh


    【解决方案1】:

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

    if [[ -z $MONTH && -z $YEAR ]] || [[ -z $TIME ]]; then
        usage
    

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

    if [[ -z $MONTH || -z $YEAR ]] && [[ -z $TIME ]]; then
        usage
    

    (“如果我错过了月份或年份,并且我错过了时间,这是一个错误”)。

    【讨论】:

      猜你喜欢
      • 2017-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多