Cygwin cd:参数太多-正确转义的空格+;引用?

Cygwin cd:参数太多-正确转义的空格+;引用?,cygwin,Cygwin,使用cygwin终端,我的.bashrc中有以下内容: export WINHOME="/cygdrive/c/Users/userName" export TUTORING="$WINHOME/Desktop/Coding\ Projects/Tutoring/" 当我打开cygwin时,会发生以下情况: $ cd $TUTORING -bash: cd: too many arguments 于是我试着: $ echo $TUTORING /cygdrive/c/Users/userNa

使用cygwin终端,我的.bashrc中有以下内容:

export WINHOME="/cygdrive/c/Users/userName"
export TUTORING="$WINHOME/Desktop/Coding\ Projects/Tutoring/"
当我打开cygwin时,会发生以下情况:

$ cd $TUTORING
-bash: cd: too many arguments
于是我试着:

$ echo $TUTORING
/cygdrive/c/Users/userName/Desktop/Coding\ Projects/Tutoring
复制粘贴echo的输出:

cd /cygdrive/c/Users/userName/Desktop/Coding\ Projects/Tutoring 

这似乎奏效了。知道cd为什么与我的变量有问题吗?

使用双引号来转义整个路径


由于路径中有空格,cd命令认为有几个参数

在变量展开后发生分词。从
manbash

shell将扫描参数扩展、命令替换和算术扩展的结果,这些结果不会出现在双引号中以进行分词

shell将IFS的每个字符视为分隔符,并使用这些字符作为字段终止符将其他扩展的结果拆分为单词

正确的方法是使用双引号:

export TUTORING="$WINHOME/Desktop/Coding Projects/Tutoring/"
cd "$TUTORING"