Syntaxfehler in der Nähe des unerwarteten Tokens „elif“ auf zwei Ebenen, if-else-Prüfung

Syntaxfehler in der Nähe des unerwarteten Tokens „elif“ auf zwei Ebenen, if-else-Prüfung

Ich habe diesen Fehler ständig erhalten, wenn ich per SSH auf meine Box zugegriffen habe.

-bash: /root/.bashrc: line 65: syntax error near unexpected token `elif'                                                                          
-bash: /root/.bashrc: line 65: `elif [ -n "$BASH_VERSION" ]; then' 

Das habe ich zu diesen Zeilen

if [ -n "$ZSH_VERSION" ]; then
   # assume Zsh
elif [ -n "$BASH_VERSION" ]; then
    PS1="⚡️$yellow $dircolor \W $lightpurple $white"
    if [ $USER == 'root' ]
    then
        export PS1="$white┌──[$red\u$white@$red\h$white]──$white[$red\w$white] \n└── $white"
    else
        export PS1="$white┌──[$lightgreen\u$white@$lightgreen\h$white]──$white[$lightgreen\w$white] \n└── $white"
    fi
else
    # assume something else
fi

Ich überprüfe nur, ob zsh/bash und stelle meine PS1 entsprechend ein.

Mache ich bei meiner Syntax etwas falsch?

Antwort1

Das liegt daran, dass Ihr ifText leer ist. Versuchen Sie, eine Dummy-Anweisung wie hinzuzufügen :, oder schreiben Sie Ihren Code am besten neu, ohne ihn auf zsh zu testen:

if [ -n "$BASH_VERSION" ]; then
    PS1="⚡️$yellow $dircolor \W $lightpurple $white"
    if [ $USER == 'root' ]
    then
        export PS1="$white┌──[$red\u$white@$red\h$white]──$white[$red\w$white] \n└── $white"
    else
        export PS1="$white┌──[$lightgreen\u$white@$lightgreen\h$white]──$white[$lightgreen\w$white] \n└── $white"
    fi
fi

verwandte Informationen