在设置-vx之后; @ dash-o
每个评论的来源〜/ .bash_profilembp:~ 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
上方是源〜/ .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"
答案 0 :(得分:1)
发布的bash脚本没有问题。这很有可能是由于引用了其他bash脚本的结果:asdf.bash,asdf.sh,virtualenvwrapper.sh,...
执行“ set -vx;源〜/ .bash_profile”应该有助于缩小问题
答案 1 :(得分:1)
cat -v
的输出建议您仅使用回车符作为行尾来格式化文件。这是不寻常的。有关行尾的更多信息,请参见wiki newline。检查用于创建和/或编辑文件的编辑器的编码和设置是明智的。您也可以尝试使用十六进制编辑器或使用hexdump -C
检查文件。
Bash解析期望仅将换行符用作行尾的文件。由于bash找不到换行符,因此他将整个文件解析为一行。
要将所有回车符替换为换行符,可以使用tr
:
tr '\r' '\n' < ~/.bash_profile > tempfile
mv tempfile ~/.bash_profile
或者例如使用gnu sed:
sed -i -e 's/\r/\n/g' ~/.bash_profile
您的文件可能使用dos行尾进行格式化-即。回车符和换行符都用于表示行尾-但是您将cat -v
的输出错误地复制到了问题。使用dos2unix
实用工具或类似sed -i -e 's/\r//' ~/.bash_profile
之类的工具,将回车符+换行符的序列转换为单个换行符。