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