2015-04-28 32 views
9

Ich habe ein Shell-Skript, das mehrere Argumente akzeptieren sollte.Syntaxfehler in Bedingungsausdruck: unerwartetes Token `; '

Es kann entweder das Argument "update" oder "create" akzeptieren. Wenn kein Argument übergeben wird, sollte der Benutzer einen Fehler erhalten. Wenn jedoch Aufbau meiner if/elif Zustand erhalte ich die Fehlermeldung:

syntax error in conditional expression: unexpected token `;' 

Der Code:

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 

Wenn ich das Skript wie folgt

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

Die Fehlerbehandlung funktioniert, und ich sehe die folgende Nachricht

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

Beim Hinzufügen der elif Bedingung bekomme ich jedoch den obigen Fehler. Irgendjemand eine Idee?

Antwort

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

sollte zwischen "update" und ]]

+0

Wow, wie einem dummen Fehler

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

mit einem Raum sein. Dank dafür ! :) Warte noch 11 Minuten bevor ich die Antwort annehmen kann – Musterknabe