Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati

Versione 31 del 14/11/2021 01.21.44

Nascondi questo messaggio


Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Prima di vedere nel dettaglio gli strumenti che le varie shell disponibili su Ubuntu forniscono per fare il parsing della riga di comando, è utile fare una breve introduzione per capire alcuni concetti fondamentali.

Facendo riferimento al comando tar, un modo generico per lanciare questo comando nel terminale è dato da:

tar -cv -f mioArchivio.tar directoryDaArchiviare

Il comando è composto da una serie di stringhe dette argomenti. Il primo argomento è il nome stesso del comando, mentre i successivi sono indicati con il nome di parametri posizionali.
Questi ultimi possono essere suddivisi in alcune categorie logiche:

  • una opzione è un argomento, generalmente incluso nella documentazione del comando, la cui presenza modifica il comportamento del comando stesso.
    Una opzione può esistere nella versione corta, che consiste in un trattino seguito da una singola lettera (ad esempio, '-f' nel comando precedente), o nella versione lunga. Di quest'ultima, si hanno due formati: nello stile GNU si ha un doppio trattino seguito da una serie di due o più lettere (ad esempio '--help'); lo stile XF86 ha un singolo trattino come prefisso (ad esempio '-verbose').
    Più opzioni corte possono essere raggruppate in un singolo argomento (ad esempio, '-cv' nel comando precedente).

  • un parametro è un argomento che può fornire informazioni aggiuntive al comando o a un'opzione a cui si riferisce. Nel comando precedente, 'mioArchivio.tar' è un parametro dell'opzione '-f', mentre 'directoryDaArchiviare' è un parametro per il comando 'tar'. Qualora si volesse aggiungere al comando un parametro che ha l'aspetto di una opzione, ma non la sua funzione, è possibile separarlo dal resto del comando scrivendolo dopo un doppio trattino '--'

Fatta questa premessa, è utile notare che il comando precedente è equivalente al comando:

tar -vcf mioArchivio.tar directoryDaArchiviare

In questo comando, tutte le opzioni corte sono state riunite e ne è stato cambiato l'ordine. Analogamente, l'ordine con cui vengono scritte le opzioni lunghe, insieme ai loro eventuali parametri, non ne altera il significato.

Il parsing della riga di comando è quindi la procedura con cui un comando, o uno script, interpretano le istruzioni fornite dall'utente tramite una opportuna combinazione di opzioni e parametri. Nel caso di uno script, per poter effettuare facilmente questo parsing, si possono usare due strumenti molto versatili: getopt e getopts (fare attenzione alla 's' finale nel secondo comando).

Parsing della riga di comando usando getopt

L'utilità del comando getopt consiste nel rendere canonica la lista di parametri e opzioni che vengono passate a uno script.

  1. Passo 1
  2. Passo 2
  3. Passo 3

Titolo 2

Pregi del comando getopt

Difetti del comando getopt

  • Il comando getopt descritto in questa guida non è un built-in della shell, ma è attualmente incluso nel pacchetto utils-linux e precedentemente nella glibc (cioè, la GNU lib c).

Parsing della riga di comando usando getopts

Testo...

  1. Passo 1
  2. Passo 2
  3. Passo 3

Titolo 2

Testo...

Pregi del comando getopts

  • A differenza di getopt, il comando getopts è un built-in della shell. Questo comporta che:

    • è definito nello standard POSIX;
    • non c'è bisogno di fare attenzione alle sue diverse implementazioni, come avviene per getopt;

    • non ha bisogno di programmi esterni per accedere ai parametri posizionali;
    • può avere accesso diretto alle variabili della shell, che può usare per fare il parsing.

Difetti del comando getopts

  1. Il comando getops è in grado di fare il parsing solo delle opzioni corte. Se lo script prevede l'uso di opzioni lunghe, sia nello stile GNU sia nello stile XF86, getopts non è la scelta opportuna.

Funzionamento

Per il suo funzionamento, getopts usa le seguenti variabili

Variabile

Descrizione

OPTIND

Contiene l'indice del parametro posizionale del prossimo argomento da processare. È il modo in cui getopts tiene traccia del proprio stato ed è utile per poter fare uno shift dei parametri posizionali, dopo averli analizzati con getopts

OPTARG

OPTERR

Ulteriori risorse

  • Risorsa 1
  • Risorsa 2


CategoryNuoviDocumenti