linux - Bash shell 脚本。变量作为参数。无引号与双引号

标签 linux bash shell sh

我有两个不同的命令:

rm -rf $MY_DIR
rm -rf "$MY_DIR"

它们有什么区别?我应该使用哪个?

最佳答案

Shell 变量是逐字扩展的,因此您应该使用带引号的选项。假设您的 $HOME 变量等于 /Users/rocket spacer。在那种情况下,这将是运行 rm -rf/Users/rocket spacerrm -rf "/Users/rocket spacer" 之间的区别。第一个尝试删除当前目录中的两个内容:/Users/rocketspacer。第二个选项将执行您想要的操作,并删除目录 /Users/rocket spacer。通常,当扩展表示路径的 shell 变量时,您应该将其括在引号中,这样您就不必担心任何东西被误解的可能性。

关于linux - Bash shell 脚本。变量作为参数。无引号与双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41325894/

相关文章:

c++ - SNMP 类型 Unsigned32 的正确编码是什么?

c - C中的POSIX线程本地数据

bash - 您应该在 shell 脚本中更改当前目录吗?

linux - 如何从 shell 脚本内部更新 shell 脚本

regex - 替换文件中的所有字符串,在替换中使用通配符

linux - 期望脚本的错误退出状态

java - 如何在shell脚本中运行unstop jar

linux - 有没有办法在 Eclipse 中更改一些 "special"GUI 颜色?

linux - 脚本应该在服务器启动期间自行运行

linux - 从 perl 启动 bash 时命令失败,但从命令行启动时没有,权限问题