Bash
程序替換中的變數範圍
我有一個帶有兩個參數的命令。假設我們想通過程序替換來創建兩個參數:
cat <(var=123; echo $var) <(echo $var)
必須做什麼才能使 $var 在第二次替換中可用?
問題是您只
var
在第一個子外殼中分配;第二個子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)