
Tengo un comando que toma dos argumentos. Supongamos que queremos crear ambos argumentos mediante sustitución de procesos:
cat <(var=123; echo $var) <(echo $var)
¿Qué hay que hacer para que $var esté disponible en la segunda sustitución?
Respuesta1
El problema es que sólo estás asignando var
en la primera subcapa; la segunda subcapa no tiene acceso a nada de lo asignado allí. Para acceder a una variable en ambos, es necesario declararla de antemano:
var=123
cat <(echo $var) <(echo $var)
Si necesita conservar el original y realizar un seguimiento de las cosas que lo cambian:
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)