Я всегда использовал пути, которые не прописаны жестко в кавычках для моих скриптов bash. Таким образом, если путь (введенный пользователем, домашний каталог пользователя и т.д.) Содержит странные символы, пробелы или тире, мой сценарий не будет мешать и двигаться как обычно.
Но я только что заметил, что, хотя он работает с большинством путей, он потерпит неудачу с путями, которые имеют тильду в качестве ярлыка для домашнего каталога пользователя. например:
# works
install dotfile "/home/user/.dotfile"
# fails
install dotfile "~/.dotfile"
# fails
cp dotfile "~/.dotfile"
Цитаты пытаются защитить от синтаксического анализа самого ~
. как он пытается скопировать файл в ./~/.dotfile
Я хочу использовать ~/
потому что это удобно (и просто. И просто означает меньше ошибок), и заключить его в кавычки, потому что это безопасно от пробелов и тире. Есть ли способ иметь оба?