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

Re: Bash ed esecuzione del contenuto di una variabile di ambiente



On Tuesday 04 December 2007 11:14, Homer S. wrote:
> > niko@localhost:~$ pippo="echo hello world"
> > niko@localhost:~$ $pippo
> > hello world
>
> Non funziona sempre; es.:
>
> localhost> PIPPO="ls -l > prova.log"
> localhost> $PIPPO
> ls: >: No such file or directory
> ls: prova.log: No such file or directory
>
> credo dipenda dal tipo dei comandi e dal numero di argomenti. Io sto
> cercando una chiamata che funzioni sempre, indipendentemente da essi.

Il problema è la redirezione dell'output.  Quando la shell esegue il 
parsing per interpretare le linee di comando essa riconosce ed espande le 
varie parti in un ordine ben preciso.  Il riconoscimento delle varie 
redirezioni viene effettuato in una fase precedente all'espansione delle 
variabili, sicché, quando arriva ad espandere $PIPPO, il carattere ">" 
non ha più il significato che ci si aspetterebbe.

Esempio:

   $ export PROVA="> prova.tmp"
   $ echo ciao $PROVA
   ciao > prova.tmp
   $ ls prova.tmp
   ls: prova.tmp: No such file or directory
   $

Nella sezione "EXPANSION" del manuale di Bash trovi maggiori informazioni 
circa l'ordine citato.


Cordiali saluti.

alfredo



Reply to: