为什么在shell脚本中使用$ HOME而不是〜(代字号)?

时间:2011-05-08 22:04:48

标签: shell scripting environment-variables

有没有理由在shell脚本中使用变量$HOME而不是简单的~(代字号)?

3 个答案:

答案 0 :(得分:33)

Tilde扩展在某些情况下不起作用,例如像/foo/bar:~/baz

这样的字符串中间

答案 1 :(得分:12)

$HOME的便携性和一致性。 Tilde是一个打字快捷方式。

答案 2 :(得分:8)

今天我发现代字号扩展不适用于双引号("")。

在zsh中(抱歉,我没有检查其他shell的行为。),

  

内部双引号(""),参数和命令替换发生

Tilde扩展是文件名扩展,因此在双引号内失败 $HOME是一个参数替换,可以在双引号内展开 $HOME是一个安全的赌注。