2016-10-05 6 views
0

Linuxマシンでは、https://cloud.google.com/storage/docs/gsutil_installの指示に従ってgsutilをインストールしようとしています。インストール中に、私はすべてに「はい」と答え、デフォルト値にしました。私は新しいターミナルを開いている場合gsutilのインストール後の.bashrcの構文エラー

は今しかし、それはbashのエラーで始まる:

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

行が私の.bashrcファイルの次のスニペットに含まれている問題:

# 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 

エラー2番目に最後のfiステートメントで発生します。実際、fiの最後の2つはifと一致していないようです。私はちょうど最後の3行をコメントすることができますが、それが機能を壊すかどうかはわかりません。何かアドバイス?

+0

最後の3行がロジックなしでぶら下がっているのはなぜですか? – Inian

+0

それも私を困惑させる。 Googleが構文エラーを含むコードを発送することはまず考えられないが、これらの行はインストールプログラムによって追加されたようだ。 –

答えて

1

.bashrcスニペットを見ると、最後の2つのfiキーワードを削除して機能を破らないようにします。対応するifというキーワードがファイルの前にある可能性はありますが、先行するブロックのインデントと内容(bash補完を構成する)になる可能性はあります。

私は失われたラインがsourceにそれらをしようとする前に、2つのファイルが存在する(と読める)ことを確認していることを推測したい:

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 

それらを生成したインストーラのバグがあるように見えますライン。安全なところにいるためには、パッケージを再ダウンロードしてインストーラをもう一度実行します。

関連する問題