由于 POSIX shell 糟糕的变量扩展和分词规则,您的尝试不起作用。 @ZiggZagg 的评论并不是建议将您使用的双引号替换为单引号。他们建议您单引号路径。然而,由于 var 扩展与分词的相互作用,这不起作用。基本上,没有办法做你想做的事。但是,您可以将路径放入 var 中并使用它:
photos='/home/tomas/Pictures/New Folder'
cd "$photos"
注意需要引用 var 扩展以防止 shell 对扩展进行分词。
您可以通过使用别名或函数来更接近您想要的。例如,
photos() { cd '/home/tomas/Pictures/New Folder'; }
photos
这个问题很容易解决: (请注意,我在 bash 脚本中执行此操作,但在任何 shell 中执行此操作都应该可行)
oldIFS=$IFS
# save the original delims
IFS=""
# Now erase all the delims
DIR="/Users/dr_xemacs/Library/Application Support/minecraft/assets/indexes"
# Assigning DIR now takes the whole line without cutting it at any delim
IFS=$oldIFS
# reset delims
...and we have success.