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: