我有两个不同的命令:
rm -rf $MY_DIR
rm -rf "$MY_DIR"
它们有什么区别?我应该使用哪个?
最佳答案
Shell 变量是逐字扩展的,因此您应该使用带引号的选项。假设您的 $HOME 变量等于 /Users/rocket spacer
。在那种情况下,这将是运行 rm -rf/Users/rocket spacer
和 rm -rf "/Users/rocket spacer"
之间的区别。第一个尝试删除当前目录中的两个内容:/Users/rocket
和 spacer
。第二个选项将执行您想要的操作,并删除目录 /Users/rocket spacer
。通常,当扩展表示路径的 shell 变量时,您应该将其括在引号中,这样您就不必担心任何东西被误解的可能性。
关于linux - Bash shell 脚本。变量作为参数。无引号与双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41325894/