プロセス置換の変数範囲

プロセス置換の変数範囲

2つのパラメータを持つコマンドがあります。プロセス置換によって2つのパラメータを生成するとします。

cat <(var=123; echo $var) <(echo $var)

2番目の置換で$ varを使用できるようにするにはどうすればよいですか?

ベストアンサー1

問題は、var最初のサブシェルにのみ割り当てられ、2番目のサブシェルには割り当てられたエントリにアクセスできないことです。両方の変数から変数にアクセスするには、事前に宣言する必要があります。

var=123
cat <(echo $var) <(echo $var)

元のコンテンツを維持し、変更を追跡する必要がある場合:

var=123                               # set the default value
PARAM1=$(/bin/something; echo $var)   # something could edit var's value
PARAM2=$(/bin/otherthing; echo $var)  # so could otherthing
cat <(echo $PARAM1) <(echo $PARAM2)

おすすめ記事