user2316667
47
bash
cygwin
cd
我尝试了很多东西.见下文:
尝试进入目录:/ cygdrive/c/Users/my dir/Documents
$ DOCS="/cygdrive/c/Users/my\ dir/Documents"
$ echo $DOCS
/cygdrive/c/Users/my\ dir/Documents
$ cd $DOCS
-bash: cd: /cygdrive/c/Users/my\: No such file or directory
$ cd /cygdrive/c/Users/my\ dir/Documents
(success)
非常奇怪的行为.当我手动输入时,退格会执行其转义字符.但是当我使用变量DOCS的参数扩展时.
我尝试了其他变体,例如没有反斜杠.
$ DOCS=/cygdrive/c/Users/Rahman\ dir/Documents
$ echo $DOCS
/cygdrive/c/Users/my dir/Documents
$ cd $DOCS
-bash: cd: /cygdrive/c/Users/my: No such file or directory
要么
$ DOCS="/cygdrive/c/Users/my dir/Documents"
$ echo $DOCS
/cygdrive/c/Users/my dir/Documents
$ cd $DOCS
-bash: cd: /cygdrive/c/Users/my: No such file or directory
我知道这是可能的.看这里:
$ echo $HOME
/home/my dir
[编辑]正如所指出的,cd $ HOME也不起作用.引号必须放在它周围.
有没有搞错:
$ DOCS="\"/cygdrive/c/Users/my dir/Documents\""
$ echo $DOCS
"/cygdrive/c/Users/my dir/Documents"
$ cd $DOCS
-bash: cd: "/cygdrive/c/Users/my: No such file or directory