2012-03-12 31 views
1

我有一個bash shell可以獲得月份(mm)和年份(yyyy)或時間(mmyyyy)的選項。 我可以解析選項並將它們分配給變量。現在,我需要一些條件來檢查這些變量。我需要的是:如果(月和年)或時間,然後繼續其他顯示使用情況。這是我的代碼,它似乎沒有工作。與OR OR運營商的條件條件

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 

(「如果我失蹤的月份或年份,我錯過了時間,這是一個錯誤」)。