Mac OSX .bash_profile 导出路径包含空格

Mac OSX .bash_profile 导出路径包含空格

我可能在这里做了一些明显错误的事情。
在 $HOME/.bash_profile 中我添加了(注意路径中的空格):

export PROJ="~/Documents/project livefeed"

之后我得到:

➜  ~ cd $PROJ                  
cd: no such file or directory: ~/Documents/project livefeed

知道出了什么问题吗?我尝试在引号之间的空格之前添加反斜杠,但这也没有帮助。

该文件夹存在:

➜  ~ cd ~/Documents/project\ livefeed
➜  project livefeed 

我还申请了:

➜  ~ source $HOME/.bash_profile

答案1

~内部不会扩展""。为了使其工作,请使用

export PROJ=~/"Documents/project livefeed"

答案2

这是 POSIX shell 的一个迷人功能(或可悲的缺点)。你需要总是引用该$PROJ变量(因此cd "$PROG"无论何时何地都可以插入该变量),或者使用其他一些 shell,例如 ZSH,它不会执行 POSIX 单词分割操作。

% mkdir "a dir"
% dir="a dir"
% cd $dir
% pwd
/Users/jhqdoe/tmp/a dir
% cd ..
% bash
bash-3.2$ dir="a dir"
bash-3.2$ cd $dir
bash: cd: a: No such file or directory
bash-3.2$ exit
exit
% 

相关内容