On Tuesday 04 December 2007 11:14, Homer S. wrote:
> > [EMAIL PROTECTED]:~$ pippo="echo hello world"
> > [EMAIL PROTECTED]:~$ $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

Rispondere a