
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)