Wszystkie powyższe działają, ale muszą również obejść problem (znaki specjalne i znaki specjalne), który nie musi występować w pierwszej kolejności: Znaki specjalne, gdy zmienna jest rozwijana przez powłokę. Po prostu tego nie rób (rozwijanie zmiennych) w pierwszej kolejności. Użyj zmiennej bezpośrednio, bez rozwijania.
Ponadto, jeśli zmienna zawiera sekret i chcesz skopiować ten sekret do pliku, możesz chcieć nie używać interpretacji w wierszu poleceń, ponieważ śledzenie / echo poleceń poleceń powłoki może ujawnić sekret. Oznacza to, że wszystkie odpowiedzi, które są używane $var
w wierszu poleceń, mogą stwarzać potencjalne zagrożenie bezpieczeństwa, narażając zawartość zmiennej na śledzenie i rejestrowanie powłoki.
Użyj tego:
printenv var >file
Oznacza to, że w przypadku pytania PO:
printenv var >"$destfile"