安装 gsutil 后 .bashrc 中的语法错误
Syntax error in .bashrc after installing gsutil
在 Linux 机器上,我正在尝试按照 https://cloud.google.com/storage/docs/gsutil_install 上的说明安装 gsutil。在安装过程中,我对所有内容都回答了 "yes",并保留了默认值。
但是现在,如果我打开一个新终端,它会以 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
都不匹配。我可以只注释掉最后三行,但我不确定这是否会破坏功能。有什么建议吗?
通过查看您的 .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
生成这些行的安装程序中似乎存在错误。为了安全起见,我会重新下载软件包和 运行 安装程序。
在 Linux 机器上,我正在尝试按照 https://cloud.google.com/storage/docs/gsutil_install 上的说明安装 gsutil。在安装过程中,我对所有内容都回答了 "yes",并保留了默认值。
但是现在,如果我打开一个新终端,它会以 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
都不匹配。我可以只注释掉最后三行,但我不确定这是否会破坏功能。有什么建议吗?
通过查看您的 .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
生成这些行的安装程序中似乎存在错误。为了安全起见,我会重新下载软件包和 运行 安装程序。