我有一个带有两个参数的命令。假设我们想通过进程替换来创建两个参数:
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)