在Linux机器上,我正按照https://cloud.google.com/storage/docs/gsutil_install上的说明尝试安装gsutil。在安装过程中,我对所有内容回答“是”,并将其保留为默认值。
现在,如果我打开一个新的终端,它会以bash错误开始:
bash: /home/kurt/.bashrc: line 119: syntax error near unexpected token `fi'
bash: /home/kurt/.bashrc: line 119: `fi'
kurt@kurt-ThinkPad:~$
违规行包含在我的.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
错误发生在倒数第二个fi
语句中。实际上,看起来最后两个fi
与任何if
都不匹配。我可以只注释掉最后三行,但我不确定这是否会破坏功能。有什么建议吗?
答案 0 :(得分:1)
通过查看您的.bashrc
代码段,您不会通过删除最后两个fi
关键字来破坏任何功能。可能在文件前面有一个相应的if
关键字,但是前面的块的缩进和内容(配置bash完成),我对此表示怀疑。
我猜想在尝试source
之前,缺少的行正在检查这两个文件是否存在(并且是可读的):
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
看起来安装程序中存在生成这些行的错误。为了安全起见,我会重新下载软件包并再次运行安装程序。