私は2行、つまり認証の2つの部分を出力する外部プログラム(認証トークン生成器の一種)を持っています。2行の出力から環境変数を設定する
$ get-auth
SomeAuthString1
SomeAuthString2
はその後、私は、環境変数、たとえば、AUTH
とPIN
にこれらの文字列をエクスポートします。
私はbashでいくつかのことを試みましたが、何も動作しません。例えば
、私が行うことができます。
get-auth | read -d$'\4' AUTH PIN
が、それは失敗します。 AUTHとPINは設定されていません。もしそうなら、
get-auth | paste -d\ -s | read AUTH PIN
でも失敗します。私がデータを入手する唯一の方法は、実行することです。ただし、サブシェルでのみ明らかです。その結果からのエクスポートはありません
少しの研究で、私はthis answerを見つけました。私はそれができないことを意味するかもしれません。しかし、私は間違っているかもしれません。私はまた、読み取る前に{
でサブシェルを開くと、値が}
で終わるまでサブシェルで利用できることも発見しました。
2行出力から環境変数を設定できる方法はありますか?私は明らかにそれをファイルに保存したくないので、そのためにFIFOを設定する必要はありません。それらを達成する唯一の方法はありますか?
次のようなものです: 'authstrings = \' get-auth \ ';エクスポートAUTH = $ authstrings [0];輸出PIN = $ authstrings [1] '可能ですか? – Gavin
'{...}'はサブシェルを作成せず、グループ化されたコマンドだけを作成します。これは、あなたが発見したように、サブシェルを作成する*パイプ*です。 – chepner