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 <alexm@debian.org> ⢿⡄⠘⠷⠚⠋ Debian Developer - log.alexm.org ⠈⠳⣄⠀⠀⠀⠀
Attachment:
signature.asc
Description: PGP signature