3 581
contributi
m (→Esempio: script con parsing degli argomenti: sh invece di bash) |
|||
Riga 353: | Riga 353: | ||
====Esempio: script con parsing degli argomenti==== | ====Esempio: script con parsing degli argomenti==== | ||
<pre> | <pre> | ||
#! /bin/ | #! /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 | # 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> | ||
contributi