首页 > 解决方案 > .bash_profile 中意外标记“then”附近的语法错误

问题描述

下面是 set -vx 之后;来源 ~/.bash_profile 每条评论由@dash-o

mbp:~ pyop$ set -vx ; source ~/.bash_profile
+ source /Users/pyop/.bash_profile
export PATH="$PATH:/Users/pyop/Library/Python/2.7/bin/:/Users/pyop/Library/Python/3.6/bin/:/Users/pyop/miniconda3/bin:/Users/# export PATH="$GOPATH/bin:$PATH"evault vault.bash.inc' && source '/Users/pyop/google-cloud-sdk/completion.bash.inc'
-bash: /Users/pyop/.bash_profile: line 1: syntax error near unexpected token `then'
-bash: /Users/pyop/.bash_profile: line 1: `export PATH="$PATH:/Users/pyop/Library/Python/2.7/bin/:/Users/pyop/Library/Python/' export PATH="$GOPATH/bin:$PATH"evault vault.bash.inc' && source '/Users/pyop/google-cloud-sdk/completion.bash.inc'
mbp:~ pyop$

以下是@Gordon Davisson 根据用户评论的 LC_ALL=C cat -v ~/.bash_profile

mbp:~ pyop$ LC_ALL=C cat -v ~/.bash_profile
LC_ALL=C cat -v ~/.bash_profile
+ LC_ALL=C
+ cat -v /Users/pyop/.bash_profile
export PATH="$PATH:/Users/pyop/Library/Python/2.7/bin/:/Users/pyop/Library/Python/3.6/bin/:/Users/pyop/miniconda3/bin:/Users/pyop/miniconda2/bin:/usr/local/opt/rabbitmq/sbin:$PATH"^M^Mexport CLICOLOR=1^Mexport LSCOLORS=GxFxCxDxBxegedabagaced^M^Mexport PATH=/Users/pyop/Library/Android/sdk/platform-tools:$PATH^M^Malias subl='open -a "Sublime Text"'^Malias bash_profile_reset="source ~/.bash_profile"^Malias vcode='open -a "Visual Studio Code"'^Malias chrome='open -a "Google Chrome"'^Malias intel='open -a "IntelliJ IDEA"'^M^Malias runelixir="iex -S mix run"^M^Mexport PATH="/Users/pyop/terraform:$PATH"^M^Mexport PATH="/usr/local/opt/ruby/bin:$PATH"^Mexport GEM_HOME=/Users/pyop/.gem^Mexport PATH="$GEM_HOME/bin:$PATH"^M^Mexport NVM_DIR="$HOME/.nvm"^M^M. $HOME/.asdf/asdf.sh^M^M. $HOME/.asdf/completions/asdf.bash^M^Mexport PATH="$HOME/.cargo/bin:$PATH"^M^Mexport WORKON_HOME=~/.virtualenvs^Msource /usr/local/bin/virtualenvwrapper.sh^Mexport PATH="/usr/local/opt/curl-openssl/bin:$PATH"^Meval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib=$HOME/perl5)"^Mif which rbenv > /dev/null; then eval "$(rbenv init -)"; fi^M^M# The next line updates PATH for the Google Cloud SDK.^M# -f '/Users/pyop/google-cloud-sdk/path.bash.inc' && source '/Users/pyop/google-cloud-sdk/path.bash.inc'^M^M# The next line enables shell command completion for gcloud.^M# -f '/Users/pyop/google-cloud-sdk/completion.bash.inc' && source '/Users/pyop/google-cloud-sdk/completion.bash.inc'^M^Mcomplete -C /Users/pyop/terraform/vault vault^M# export GOPATH=/Users/pyop/gocode^M# export GOPATH=$GOPATH^M# export PATH="$GOPATH/bin:$PATH"^Mmbp:~ pyop$

下面是简单的源 ~/.bash_profile

-bash: /Users/pyop/.bash_profile: line 1: syntax error near unexpected token `then'
-bash: /Users/pyop/.bash_profile: line 1: `export PATH="$PATH:/Users/pyop/Library/Python/2.7/bin/:/Users/pyop/Library/Python/3.6/bin/:/Users/pyop/miniconda3/bin# -f '/Users/pyop/google-cloud-sdk/path.bash.inc' && source '/Users/pyop/google-# -f '/Users/pyop/google-cloud-sdk/completion.bash.inc' && source '/Users/pyop/g' export PATH="$GOPATH/bin:$PATH"evault vault

以上是 source ~/.bash_profile 之后的读数

下面是我的 .bash_profile

在我安装 go 之前,我一直在使用这个文件没有问题,现在它有问题。

我已经删除并注释掉了其中的一部分,但没有成功。

任何帮助表示赞赏。

export PATH="$PATH:/Users/pyop/Library/Python/2.7/bin/:/Users/pyop/Library/Python/3.6/bin/:/Users/pyop/miniconda3/bin:/Users/pyop/miniconda2/bin:/usr/local/opt/rabbitmq/sbin:$PATH"

export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced

export PATH=/Users/pyop/Library/Android/sdk/platform-tools:$PATH

alias subl='open -a "Sublime Text"'
alias bash_profile_reset="source ~/.bash_profile"
alias vcode='open -a "Visual Studio Code"'
alias chrome='open -a "Google Chrome"'
alias intel='open -a "IntelliJ IDEA"'

alias runelixir="iex -S mix run"

export PATH="/Users/pyop/terraform:$PATH"

export PATH="/usr/local/opt/ruby/bin:$PATH"
export GEM_HOME=/Users/pyop/.gem
export PATH="$GEM_HOME/bin:$PATH"

export NVM_DIR="$HOME/.nvm"

. $HOME/.asdf/asdf.sh

. $HOME/.asdf/completions/asdf.bash

export PATH="$HOME/.cargo/bin:$PATH"

export WORKON_HOME=~/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
export PATH="/usr/local/opt/curl-openssl/bin:$PATH"
eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib=$HOME/perl5)"
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

# The next line updates PATH for the Google Cloud SDK.
# -f '/Users/pyop/google-cloud-sdk/path.bash.inc' && source '/Users/pyop/google-cloud-sdk/path.bash.inc'

# The next line enables shell command completion for gcloud.
# -f '/Users/pyop/google-cloud-sdk/completion.bash.inc' && source '/Users/pyop/google-cloud-sdk/completion.bash.inc'

complete -C /Users/pyop/terraform/vault vault
# export GOPATH=/Users/pyop/gocode
# export GOPATH=$GOPATH
# export PATH="$GOPATH/bin:$PATH"

标签: bashsyntax-error

解决方案


发布的 bash 脚本没有问题。这很可能是引用其他 bash 脚本的结果:asdf.bash、asdf.sh、virtualenvwrapper.sh、...

执行“set -vx ; source ~/.bash_profile”应该有助于缩小问题


推荐阅读