
我有一個帶有兩個參數的命令。假設我們想透過進程替換來建立兩個參數:
cat <(var=123; echo $var) <(echo $var)
必須做什麼才能使 $var 在第二次替換中可用?
答案1
問題是您只var
在第一個子 shell 中進行分配;第二個子 shell 無權存取其中分配的任何內容。要存取兩者中的變量,您需要事先聲明它:
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)