Bash script command line

http://linux.about.com/od/Bash_Scripting_Solutions/a/How-To-Pass-Arguments-To-A-Bash-Script.htm

Gli argomenti passati allo script si trovano nelle variabili $1, $2, ecc….
Tutti gli argomenti vengono raccoli nell’ array $@ : è utile quando si ha un numero variabile di argomenti, come nel caso delle espansioni della shell (vedere http://www.gnu.org/software/bash/manual/html_node/Shell-Expansions.html), come nel seguente esempio

for FILE1 in "$@"
do
   wc $FILE1
done

Allo script possono essere passati anche dei flag (o opzioni): per gestirli si usa getopts

while getopts u:d:p:f: option
do
        case "${option}"
        in
                u) USER=${OPTARG};;
                d) DATE=${OPTARG};;
                p) PRODUCT=${OPTARG};;
                f) FORMAT=$OPTARG;;
        esac
done

il ciclo while sfrutta la funzione getopts, la quale a sua volta usa la optstring: quest’ ultima indica a getopts quali flag aspettarsi e come gestirli.
Getopts assegna il flag alla variabile ${option}: con lo switch case/esac andiamo a sfruttarlo.
Il valore della variabile assegnata al flag è contenuto in ${OPTARG}.
I duepunti nella optstring sono importanti: un duepunti accanto ad un flag indicano che quel flag richiede un valore.
Un duepunti all’ inizio della optstring indica che i flag non presenti nella optstring vengono assegnati con una ${option} == “?”: ciò permette di gestire gli errori (magari informando l’ utente).

Gli argomenti non gestiti da getopts sono catturati da $1, $2, ecc….

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...