
Eu tenho um comando que leva dois argumentos. Suponha que queremos criar ambos os argumentos por substituição de processo:
cat <(var=123; echo $var) <(echo $var)
O que deve ser feito para disponibilizar $var na segunda substituição?
Responder1
O problema é que você está atribuindo apenas var
no primeiro subshell; o segundo subshell não tem acesso a nada atribuído nele. Para acessar uma variável em ambos, é necessário declará-la previamente:
var=123
cat <(echo $var) <(echo $var)
Se você precisar manter o original e rastrear coisas que o alterem:
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)