有什么理由在shell脚本中使用变量$HOME
而不是简单的~
(波浪号)吗?
波
浪号扩展在某些情况下不起作用,例如在字符串中间,例如/foo/bar:~/baz
$HOME
的可移植性和统一性。波浪号是一个键入快捷方式。
今天我发现波浪号扩展在双引号(""
)中不起作用。
在 zsh 中(对不起,我没有检查其他外壳的行为。
在双引号(
""
)内,发生参数和命令替换
波浪号扩展是文件名扩展,因此它在双引号内失败。
$HOME
是参数替换,可以在双引号内扩展。
$HOME
是一个安全的选择。