Ich verwende bash
und bin am meisten an einer Antwort interessiert bash
, aber Sie können antworten, wie es in anderen Shells gemacht werden soll, wenn Sie möchten.
Ich habe eine Umgebungsvariable KEY
und möchte den Wert dieser Umgebungsvariablen in einer Datei speichern. Zur Zeit mache ich
echo "${KEY}" > ./key.pem
In der Praxis scheint dies in Ordnung zu sein, aber theoretisch bricht dies, wenn KEY=-n
.
$ export KEY=-n
$ echo BEGIN "${KEY}" END
BEGIN -n END
$ echo "${KEY}" END
END$
Gibt es eine bessere Möglichkeit, den Wert einer einzelnen Umgebungsvariablen in einer Datei zu speichern? (Beachten Sie, dass export
und declare
den Namen der Variablen in ihre Ausgaben aufnehmen, was für mich nicht gut ist.)
echo -- "$KEY"
würde nicht helfen. Es würde ausgeben -- -n
.
-- -n
printf
immer besser ist, alsecho
wenn Sie nicht die vollständige Kontrolle darüber haben, welche Eingabe Sie drucken möchten.
rc
Klon für Unix und seine Unterstützung für es / akanga-Derivate echo --
. Frühere Versionen von zsh
taten dies ebenfalls, aber der End-of-Option-Begrenzer wurde später geändert, -
um die Konsistenz mit der Bourne / Korn-Shell und den integrierten Funktionen zu gewährleisten.