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工作,但我不能正确使用命令?
简答:分词.
当你有这个
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"