Усе вищезазначене працює, але також має вирішити проблему (екрани та спеціальні символи), яка не повинна виникати в першу чергу: Спеціальні символи, коли змінна розширюється оболонкою. Просто не робіть цього (змінне розширення) спочатку. Використовуйте змінну безпосередньо, без розширення.
Крім того, якщо ваша змінна містить секрет, і ви хочете скопіювати цей секрет у файл, можливо, ви захочете не мати розширення в командному рядку, оскільки трасування / ехо команд команд оболонки може розкрити секрет. Значить, усі відповіді, які використовуються$var в командному рядку, можуть мати потенційний ризик безпеки, піддаючи зміст змінного відстеженню та реєстрації оболонки.
Використовуй це:
printenv var >file
Це означає, що у разі запитання про ОП:
printenv var >"$destfile"