2016-10-05 1 views
0

Auf einem Linux-Rechner, ich versuche, gsutil nach den Anweisungen auf https://cloud.google.com/storage/docs/gsutil_install zu installieren. Während der Installation habe ich alles mit "Ja" beantwortet und die Dinge auf ihren Standardwerten belassen.Syntaxfehler in .bashrc nach der Installation von gsutil

jedoch Nun, wenn ich ein neues Terminal öffnen beginnt es mit einem Bash-Fehler:

bash: /home/kurt/.bashrc: line 119: syntax error near unexpected token `fi' 
bash: /home/kurt/.bashrc: line 119: `fi' 
[email protected]:~$ 

Die beanstandeten Linien im folgenden Ausschnitt meiner .bashrc-Datei enthalten sind:

# enable programmable completion features (you don't need to enable 
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile 
# sources /etc/bash.bashrc). 
if ! shopt -oq posix; then 
    if [ -f /usr/share/bash-completion/bash_completion ]; then 
    . /usr/share/bash-completion/bash_completion 
    elif [ -f /etc/bash_completion ]; then 
    . /etc/bash_completion 
    fi 
fi 
    source '/home/kurt/Downloads/google-cloud-sdk/path.bash.inc' 
fi 
    source '/home/kurt/Downloads/google-cloud-sdk/completion.bash.inc' 
fi 

Der Fehler tritt bei der vorletzten fi Aussage auf. In der Tat sieht es so aus, als ob die letzten beiden fi s nicht durch if übereinstimmen. Ich könnte die letzten drei Zeilen kommentieren, aber ich bin mir nicht sicher, ob das die Funktionalität zerstören würde. Irgendein Rat?

+0

Warum hängen die letzten 3 Zeilen ohne Logik? – Inian

+0

Das verwirrt mich auch. Es wäre unwahrscheinlich, dass Google Code mit Syntaxfehlern liefern würde, aber diese Zeilen wurden anscheinend vom Installationsprogramm hinzugefügt. –

Antwort

1

Aus dem Blick auf Ihre .bashrc Ausschnitt, werden Sie keine Funktionalität durch Entfernen der letzten zwei fi Keywords brechen. Es ist möglich, dass es ein entsprechendes if Schlüsselwort früher in der Datei gibt, aber durch die Einrückung und den Inhalt des vorhergehenden Blocks (Konfigurieren der Bash-Vervollständigung), bezweifle ich es.

Ich würde vermuten, dass die fehlenden Zeilen werden überprüft, dass die beiden Dateien vorhanden ist (und lesbar sind), bevor sie zu source versuchen:

if [ -r '/home/kurt/Downloads/google-cloud-sdk/path.bash.inc' ]; then 
    source '/home/kurt/Downloads/google-cloud-sdk/path.bash.inc' 
fi 

if [ -r '/home/kurt/Downloads/google-cloud-sdk/completion.bash.inc' ]; then 
    source '/home/kurt/Downloads/google-cloud-sdk/completion.bash.inc' 
fi 

Es sieht aus wie ein Bug im Installer, der diejenigen erzeugen Linien. Um auf der sicheren Seite zu sein, würde ich das Paket erneut herunterladen und das Installationsprogramm erneut ausführen.

Verwandte Themen