如何使用“cd”访问带空格的目录,例如 bash 脚本中的“XML 5.1 Final Fields”
我试过cd XML 5.1 Final Fields
但它给出了No such file or directory
错误。
这是脚本:
#! /bin/bash
xmlfolder="XML/ \/5.1/ \/Final/ \/Fields"
xmlpath="/home/george/Desktop/m5u/test/$xmlfolder"
cd $xmlpath
ls /home/george/Desktop/m5u/test/
XML 5.1 Final Fields
~/Desktop/m5u/test$ ll
drwxr-xr-x 9 george george 4096 Feb 18 12:44 XML 5.1 Final Fields
这是我运行脚本时遇到的错误
line 5: cd: /home/george/Desktop/m5u/test/XML\: No such file or directory
答案1
你的变量xmlfolder
是错误的。应该是
xmlfolder=XML\ 5.1\ Final\ Fields
或 ="XML 5.1 Final Fields"
您不需要在路径中使用- 因为它只是一个文件夹。如果您还使用,/
则也不需要。选择一个。""
\
由于您使用ls
命令进行编辑,我可以看到文件夹名称末尾可能有一个空格。我建议您删除该空格,方法是在 nautilus 中重命名或使用命令mv
。
如果您想保留空格,您的变量名应该是这样的:
xmlfolder=XML\ 5.1\ Final\ Fields\
或者
xmlfolder="XML 5.1 Final Fields "
请注意,如果使用带\
字符的 First 选项,则还需要用 引用变量""
,即"$xmlfolder"
。
该错误表明cd
对路径不满意。
尝试cd
从此处更改命令
cd $xmlpath
到
cd "$xmlpath"
说实话,cd
在 bash 脚本中你不需要这么做。只需使用绝对路径引用所有内容即可。
总结来说,你的xmlfolder=
线路应该是xmlfolder=XML\ 5.1\ Final\ Fields
,你的cd
线路应该是cd "xmlpath"
。
我的代词是“他”