【发布时间】:2011-08-21 07:13:50
【问题描述】:
是否有任何理由在 shell 脚本中使用变量 $HOME 而不是简单的 ~(波浪号)?
【问题讨论】:
标签: shell scripting environment-variables home-directory tilde-expansion
是否有任何理由在 shell 脚本中使用变量 $HOME 而不是简单的 ~(波浪号)?
【问题讨论】:
标签: shell scripting environment-variables home-directory tilde-expansion
波浪号扩展在某些情况下不起作用,例如在 /foo/bar:~/baz 这样的字符串中间
【讨论】:
$HOME 的可移植性和统一性。波浪号是一种打字快捷方式。
【讨论】:
sh 不会将波浪号视为$HOME,也不会扩展~username。
今天我发现波浪号扩展在双引号中不起作用("")。
在zsh中(对不起,我没有检查其他shell的行为。),
在双引号 (
"") 内,会发生参数和命令替换
波浪号扩展是文件名扩展,因此在双引号内失败。$HOME 是参数替换,可以在双引号内扩展。$HOME 是一个安全的选择。
【讨论】: