私は、ファイルまたは標準入力からのデータ読み込みにbash組み込みのread
を使用しようとしています議論のうち、私がパイプすることができる限り)、それらを配列に格納する。これは時にはうまくいくこともありますが、なぜそうはわかりません。ここファイルまたは標準入力からの読み込みを使用して読み込み値を格納しない
は、テストケースである:
values=(1 2 3)
echo "4 5 6" | read -a values; echo "${values[*]}"
出力が "4 5 6" であるが、代わりにその "1 2 3" べきです。一方、次のように実行する場合:
values=(1 2 3)
echo "4 5 6" | (read -a values; echo "${values[*]}")
正しい出力が得られます。
アイデア?ここで
右 - パイプはサブシェルの原因です。私の心の中ではそれがループでした。愚かな私。 – Guss