Все вышеперечисленное работает, но также необходимо обойти проблему (экраны и специальные символы), которая не должна возникать в первую очередь: специальные символы, когда переменная раскрывается оболочкой. Просто не делайте этого (расширение переменных) в первую очередь. Используйте переменную напрямую, без расширения.
Кроме того, если ваша переменная содержит секрет, и вы хотите скопировать этот секрет в файл, вам может потребоваться не использовать расширение в командной строке, поскольку отслеживание / эхо команд команд оболочки может раскрыть секрет. Это означает, что все ответы, которые используются $var
в командной строке, могут иметь потенциальную угрозу безопасности, поскольку содержимое переменной подвергается трассировке и ведению журнала оболочки.
Использовать это:
printenv var >file
Это означает, что в случае вопроса OP:
printenv var >"$destfile"