[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: definir temporalment variable per a l'ordre actual



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


Reply to: