Hola Eloi, > Lligant-ho amb l'explicació que he fet a l'altre correu i per > completar-la, aquesta construcció (que com bé s'ha dit és > equivalent a executar-les en dues línies separades) crea la > variable *només* a l'entorn del shell actual. Això fa que > funcioni en el cas de l'echo, perquè la substitució la fa el > propi shell, però la variable d'entorn no està disponible per > al procés fill: > > $ foo=1; env | grep ^foo= > > Aquesta combinació no torna res, a menys que es precedeixi > l'assignació amb 'export'.
Una alternativa per passar als subshells la variable sense haver
de definar-la al shell actual és via env (els detalls al man):
$ env foo=1 ...
Quant a la pregunta original de l'Ernest, aquesta altra manera
alternativa funciona bé perquè el shell actual no interpreta
la cadena que conté l'ordre i les variables:
$ foo=1 bash -c 'echo $foo'
Salut!
Alex
--
⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁ Alex Muntada <[email protected]>
⢿⡄⠘⠷⠚⠋ Debian Developer - log.alexm.org
⠈⠳⣄⠀⠀⠀⠀
signature.asc
Description: PGP signature

