Зачем использовать $ HOME над ~ (тильда) в сценарии оболочки? - PullRequest
29 голосов
/ 09 мая 2011

Есть ли причина использовать переменную $HOME вместо простого ~ (тильда) в сценарии оболочки?

Ответы [ 3 ]

34 голосов
/ 09 мая 2011

Расширение тильды не работает в некоторых ситуациях, например, в середине строк, таких как /foo/bar:~/baz

12 голосов
/ 09 мая 2011

Переносимость и однородность $HOME.Тильда - это набор текста.

9 голосов
/ 10 октября 2015

Сегодня я обнаружил, что расширение тильды не работает в двойных кавычках ("").

В zsh (извините, я не проверял поведение других оболочек.),

Внутри двойных кавычек ("") происходит подстановка параметров и команд

Расширение Tilde - это расширение имени файла , поэтому оно не может быть заключено в двойные кавычки. $HOME является подстановкой параметров и может быть расширен внутри двойной кавычки.
$HOME безопасная ставка.

...