关于bash:.bash_profile:分配错误

.bash_profile: bad assignment

本问题已经有最佳答案,请猛点这里访问。

我正在Mac上为React native设置环境,我必须拥有以下环境变量:

1
2
3
4
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools

所以我的.bash_profile文件看起来像这样(见下文); 恐怕我的不同设置的PATH变量的定义会发生冲突。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Setting PATH for Python 3.6
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
export PATH

# added by Anaconda3 4.3.0 installer
export PATH="//anaconda/bin:$PATH"

# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH

# Setting PATH for Flutter
export PATH = /Users/juliencorbin/flutter/bin:$PATH

# Setting path for Android home (react native tools)
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools


export NVM_DIR="$HOME/.nvm"
[ -s"$NVM_DIR/nvm.sh" ] && \."$NVM_DIR/nvm.sh"  # This loads nvm
[ -s"$NVM_DIR/bash_completion" ] && \."$NVM_DIR/bash_completion"  # This loads nvm bash_completion

此外,当我运行source $HOME/.bash_profile时,出现以下错误:

1
/Users/myname/.bash_profile:16: bad assignment

我应该如何处理所有这些PATH分配? 特别适用于React native,这是我现在最想使用的版本。


错误在这一行:

1
export PATH = /Users/juliencorbin/flutter/bin:$PATH

Bash使用IFS环境变量中列出的字符作为定界符(默认定界符为)将每个命令行以单词形式拆分。 第一个单词是要执行的命令,其余都是它的参数。

上面的行分为4个字。 第一个单词是export,它接收3个参数(PATH=/Users/juliencorbin/flutter/bin:...),而只期望一个。

Bash命令和脚本中的分配不得在=运算符周围包含空格字符。 错误行必须是:

1
export PATH=/Users/juliencorbin/flutter/bin:$PATH

删除=周围的空格,并确保要分配给PATH的值中没有嵌入空格。 如果您放置在其中的路径之一包含空格,请用引号("/Users/...")将整个右侧值引起来。