私は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
または出力する必要があるすべて。
-n
inの有効なオプションが原因で問題が発生します。同じ理由で、文字列の合計(およびそのような組み合わせ)も問題を引き起こす可能性があります。引数のバックスラッシュ文字は、ビルド方法、環境、またはオプションによっても問題になる可能性があります。echo
bash
-e
-E
-neEne
bash
bash
次のQ&Aには、これらの質問とその他の事項がまとめられています。