2015-04-28 9 views
9

Mam skrypt powłoki, który powinien akceptować wiele argumentów.błąd składni w wyrażeniu warunkowym: nieoczekiwany token `; '

Może zaakceptować argument "update" lub "create". Jeśli żaden argument nie zostanie przekazany, użytkownik powinien otrzymać błąd. Jednak podczas budowy mój stan if/elif Dostaję błąd:

syntax error in conditional expression: unexpected token `;' 

Kod:

firstParam=$1 
echo $firstParam //update/create/{empty} 

if [[ "$firstParam" == "" ]]; then 
    printf "${RED}Use this script as \"tzfrs update/new [projectName]\"${NC} \n" 
    exit 1 
elif [[ "$firstParam" == "update"]]; then 
    printf "update" 
    exit 1 
fi 

Jeśli mam skrypt jak tego

if [[ "$firstParam" == "" ]]; then 
    printf "${RED}Use this script as \"tzfrs update/new [projectName]\"${NC} \n" 
    exit 1 
fi 

ładowania, Błąd, i widzę następujący komunikat:

Use this script as "tzfrs update/new [projectName]"

Jednak po dodaniu warunku elif uzyskuję powyższy błąd. Ktoś ma jakiś pomysł?

Odpowiedz

15
elif [[ "$firstParam" == "update"]]; then 

powinny być

elif [[ "$firstParam" == "update" ]]; then 

z przestrzeni między "update" i ]]

+0

Wow, takiego głupiego błędu. Dziękuję za to ! :) Muszę poczekać jeszcze 11 minut, zanim będę mógł zaakceptować odpowiedź – Musterknabe