Tout ce qui précède fonctionne, mais doit également contourner un problème (échappements et caractères spéciaux) qui n'a pas besoin de se produire en premier lieu: les caractères spéciaux lorsque la variable est développée par le shell. Ne faites pas cela (expansion variable) en premier lieu. Utilisez la variable directement, sans développement.
De plus, si votre variable contient un secret et que vous souhaitez copier ce secret dans un fichier, vous voudrez peut-être ne pas avoir d'extension dans la ligne de commande car le traçage / écho de commande des commandes shell pourrait révéler le secret. Signifie, toutes les réponses qui utilisent$var
dans la ligne de commande peuvent présenter un risque de sécurité potentiel en exposant le contenu de la variable au traçage et à la journalisation du shell.
Utilisez ceci:
printenv var >file
Cela signifie, en cas de question OP:
printenv var >"$destfile"