Ich verwende bashund 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 KEYund 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 exportund declareden 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
printfimmer besser ist, alsecho wenn Sie nicht die vollständige Kontrolle darüber haben, welche Eingabe Sie drucken möchten.
rcKlon für Unix und seine Unterstützung für es / akanga-Derivate echo --. Frühere Versionen von zshtaten 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.