2012-03-12 2 views
1

나는 월 (mm)과 연도 (yyyy) 또는 시간 (mmyyyy) 중 하나 인 옵션을 가져 오는 bash 셸이있다. 옵션을 구문 분석하고 변수에 할당 할 수 있습니다. 이제 변수를 확인하기위한 몇 가지 조건이 필요합니다. 내가 필요한 것은 다음과 같습니다 : (월 및 연도) OR 시간이 경과하면 사용법을 계속 진행하십시오. 이것은 내 코드이며 작동하지 않는 것 같습니다.AND OR 연산자를 사용하는 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 

("I 연도와 월을 모두 누락하는 경우, 그것은 오류이다, 나는 사람들이 있지만 시간 말이냐하면, 그것은 오류 인 경우, 또는")이 있어야한다 :

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

("월 또는 연도가 누락 된 경우 시간이 없습니다. 오류입니다.").

관련 문제