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

Re: [OT] piccolo aiuto di scripting



* On Fri, 19 Feb 2010, at 18:30 +0100, Luca Costantino wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> buona sera lista
> 
> mi trovo a dover eseguire a ripetizione dei comandi, molto simili tra
> loro, tutti simili a questo[1]
> 
> [1]cat FILE_DI_INPUT | PROGRAMMA_DI_ANALISI PAR1 PAR2 PAR3 > FILE_DI_OUTPUT
> 
> dove FILE_DI_INPUT e PROGRAMMA_DI_ANALISI sono parametri fissi, mentre
> PAR1, PAR2, PAR3 sono dei parametri che cambiano, e FILE_DI_OUTPUT è
> la semplice concatenazione di PAR1-PAR2
> 
> avevo pensato ad una sintassi del tipo SCRIPT par1,par2,par3
> par1,par2,par3 par1,par2,par3 ... dove ogni tripletta di parametri
> specifica completamente una esecuzione del comando[1]

Supponendo che tu abbia separato i gruppi di parametri con uno spazio e
i parametri tra loro con una virgola questo è un esempio di ciclo che fa
ciò che vuoi, da adattare opportunamente:

---------
    #!/bin/sh
    while [ "$#" -gt "0" ]; do
          parametri=$1
          par1=${parametri%%,*}
          parametri=${parametri#*,}
          par2=${parametri%%,*}
          parametri=${parametri#*,}
          par3=${parametri}
          echo cat FILE \| mio-comando --$par1 --$par2 --$par3 \> $par1$par2
          shift
    done
---------

quando viene eseguito fornisce il seguente risultato:

    $ ./prova a1,a2,a3 b1,b2,b3 c1,c2,c3
    cat FILE | mio-comando --a1 --a2 --a3 > a1a2
    cat FILE | mio-comando --b1 --b2 --b3 > b1b2
    cat FILE | mio-comando --c1 --c2 --c3 > c1c2
    $       


Saluti.

alfredo


Reply to: