我有两个不同的命令:
rm -rf $MY_DIR
rm -rf "$MY_DIR"
他们之间有什么区别?我应该使用哪种?
答案 0 :(得分:2)
Shell变量是逐字扩展的,因此您应该使用quoted选项。假设您的$ HOME变量等于/Users/rocket spacer
。在这种情况下,运行rm -rf /Users/rocket spacer
和rm -rf "/Users/rocket spacer"
之间会有所不同。第一个尝试删除当前目录中的两个内容:/Users/rocket
和spacer
。第二个选项可以执行您想要的操作,并删除目录/Users/rocket spacer
。通常,在展开表示路径的shell变量时,您应该将其包装在引号中,这样您就不必担心会出现任何错误解释的可能性。