Bash scripting - istruzioni composte: differenze tra le versioni

m
Riga 353: Riga 353:
====Esempio: script con parsing degli argomenti====
====Esempio: script con parsing degli argomenti====
<pre>
<pre>
#! /bin/sh
#! /bin/bash


# Argomenti:
# Argomenti:
Riga 384: Riga 384:
# quando non trova più opzioni o incontra la stringa -- esce dal ciclo
# quando non trova più opzioni o incontra la stringa -- esce dal ciclo


# verifico l'esistenza dell'opzione, che considero obbligatoria (ma che non lo è per getopts!)
# verifico l'esistenza dell'opzione che considero obbligatoria (ma che non lo è per getopts!)
if [ -z "$archivio" ]; then  
# e per l'azione di estrazione che l'archivio esista e sia un file regolare
if [ -z "$archivio" ] || { [ "$azione" = "x" ] && ! [ -f "$archivio" ] ; }; then  
     printf %s\\n "Archivio mancante!" >&2
     printf %s\\n "Archivio mancante!" >&2
     exit 1
     exit 1
Riga 395: Riga 396:


# eseguo qualcosa, per esempio banalmente tar
# eseguo qualcosa, per esempio banalmente tar
tar "${azione}f" "$archivio" -- "$@"
tar "${azione}f" "$archivio" -- "$@" || {
    printf %s\\n "Comando fallito!" >&2
    exit 2  # per distinguerlo dall'exit status di opzione sbagliata/mancante
}
exit 0
</pre>
</pre>


3 581

contributi