有没有理由在shell脚本中使用变量$HOME
而不是简单的~
(代字号)?
答案 0 :(得分:33)
Tilde扩展在某些情况下不起作用,例如像/foo/bar:~/baz
答案 1 :(得分:12)
$HOME
的便携性和一致性。 Tilde是一个打字快捷方式。
答案 2 :(得分:8)
今天我发现代字号扩展不适用于双引号(""
)。
在zsh中(抱歉,我没有检查其他shell的行为。),
内部双引号(
""
),参数和命令替换发生
Tilde扩展是文件名扩展,因此在双引号内失败
$HOME
是一个参数替换,可以在双引号内展开
$HOME
是一个安全的赌注。