2012-03-12 11 views
1

月(mm)と年(yyyy)または時刻(mmyyyy)のオプションを取得するbashシェルがあります。 オプションを解析して変数に割り当てることができます。さて、これらの変数をチェックする条件が必要です。私が必要とするのは:もし(月と年)OR時間であれば、それ以外の使用方法を表示します。これは私のコードであり、動作していないようです。AND演算子を使用したBash条件

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

答えて

4

あなたのロジックは少し後ろです。この:

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

(「私は年と月の両方欠けている場合、それは誤りだ。私はそれらを持っていますが、時間が足りないのですが、それは誤りだ場合、または」)はこのようになります。

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

(「月が不足している場合、は時間がありません。エラーです」)。