.bashrc没有正确地使用空格读取环境路径

vgo*_*anz 6 linux bash android environment-variables

在我的Ubuntu 13中,我编辑了我的.bashrc,添加了一个环境路径:

export OGRE_ANDROID_ROOT=/home/piperoman/Librerias/Ogre\ Android\ SDK
Run Code Online (Sandbox Code Playgroud)

如果我显变量,它工作正常,但是当我尝试在makefile中使用它时,它没有.我已经使用cd命令进行了测试,结果如下:

$ echo $OGRE_ANDROID_ROOT 
/home/piperoman/Librerias/Ogre Android SDK
$ cd $OGRE_ANDROID_ROOT
bash: cd: /home/piperoman/Librerias/Ogre: No such file or directory
Run Code Online (Sandbox Code Playgroud)

为什么echo工作,但我不能正确使用命令?

dou*_*own 9

简答:分.

当你有这个

export OGRE_ANDROID_ROOT=/home/piperoman/Librerias/Ogre\ Android\ SDK
Run Code Online (Sandbox Code Playgroud)

环境变量包含"/ home/piperoman/Librerias/Ogre Android SDK".

如果您使用它而不用引号括起来,Bash会根据IFS环境变量将字符串拆分为单词- 默认选项卡,空格和换行符.

所以

cd $OGRE_ANDROID_ROOT
Run Code Online (Sandbox Code Playgroud)

相当于

cd "/home/piperoman/Librerias/Ogre" "Android" "SDK"
Run Code Online (Sandbox Code Playgroud)

所以你应该引用它,即 "$OGRE_ANDROID_ROOT"