環境変数の値をファイルに保存する最も安全な方法

環境変数の値をファイルに保存する最も安全な方法

私はbash答えを使用しており、最も興味がありますが、必要に応じてbash他のシェルでこれを行う方法に答えることができます。

環境変数があり、KEYその環境変数の値をファイルに保存したいと思います。現在私はやっています

echo "${KEY}" > ./key.pem

実際には大丈夫に見えますが、理論的にはKEY=-n

$ export KEY=-n
$ echo BEGIN "${KEY}" END
BEGIN -n END
$ echo "${KEY}" END
END$

もしそうなら、単一の環境変数の値をファイルに保存するより良い方法はありますか? (exportそしてdeclare出力に変数名が含まれているので、私には何の利点もありません。)

ベストアンサー1

bash後で(スクリプトで)読み取り用に保存した場合は、declare -p KEYファイルを再度読み取るにはを使用します。値だけを保存したい場合は、printf '%s\n' "$KEY"変数データを出力するのと同じ方法で使用してください。

だから、

printf '%s\n' "$KEY" >key.pem

または

printf 'BEGIN %s END\n' "$KEY" >key.pem

または出力する必要があるすべて。

-ninの有効なオプションが原因で問題が発生します。同じ理由で、文字列の合計(およびそのような組み合わせ)も問題を引き起こす可能性があります。引数のバックスラッシュ文字は、ビルド方法、環境、またはオプションによっても問題になる可能性があります。echobash-e-E-neEnebashbash

次のQ&Aには、これらの質問とその他の事項がまとめられています。

おすすめ記事