Esempio di getopts Linux

Esempio di getopts Linux
"Getopts" è un comando molto utile in Linux che è per lo più incorporato all'interno degli script bash per prendere flag e argomenti come input dall'utente. Per elaborare ulteriormente l'uso di questo comando in Linux Mint 20, condivideremo con voi due diversi esempi del suo utilizzo in questo articolo.

Esempi di "getopts" in Linux Mint 20:

Per una comprensione più semplice e migliore del comando "getopts" in Linux Mint 20, abbiamo progettato per voi due scenari di esempio. Prima di passare a questi scenari, puoi controllare il manuale di aiuto del comando "getopts" in Linux Mint 20 Terminal in modo da poter ottenere l'idea di base sulla sintassi di questo comando. Puoi vedere il manuale di aiuto di questo comando eseguendo il comando "aiuto":

$ getopts -Help

Il manuale di aiuto del comando "getopts", conterrà una breve descrizione dell'uso di questo comando insieme alla sua sintassi come mostrato nell'immagine seguente:

Ora, quando abbiamo attraversato il manuale di aiuto del comando "getopts", possiamo procedere con i nostri scenari di esempio come segue:

Caso n. 1: passando bandiere a uno script bash per la sua esecuzione in Linux Mint 20:

In questo esempio, creeremo uno script bash che prenderà un flag come input dall'utente insieme al comando di esecuzione di quello script bash. A seconda del valore del flag fornito, verrà visualizzato il rispettivo output. La descrizione dettagliata dei passaggi coinvolti in questo scenario è la seguente:

Passaggio n. 1: scrivere uno script bash:

Innanzitutto, scriveremo una sceneggiatura bash nella nostra home directory. Abbiamo chiamato questo file come getopts.sh. I contenuti di questo script bash sono mostrati nell'immagine seguente. Nello script bash mostrato di seguito, abbiamo un ciclo "while" che funziona sul comando "getopts". Qui, questo comando "getopts" viene utilizzato per prendere un flag come input dall'utente. Il valore di questa bandiera può essere rispettivamente "r", "y" o "g" che rappresentano rispettivamente i colori "rosso", "giallo" e "verde". La variabile "opzione" verrà utilizzata per archiviare il valore del flag fornito dall'utente. Quindi abbiamo utilizzato un'istruzione "caso" sul valore del flag fornito che visualizzerà un messaggio personalizzato a seconda del valore del flag "opzione". Infine, abbiamo chiuso il blocco "Case" con l'istruzione "ESAC" e il blocco "Do" con la dichiarazione "Done".

Passaggio n. 2: testare lo script bash:

Dopo aver creato e salvato il nostro script bash, ora è il momento di eseguirlo. Testeremo tutti i casi uno per uno. Innanzitutto, eseguiremo lo script bash con il flag "-r" per vedere se produce l'output corretto o meno nel modo seguente:

$ bash getopts.sh -r

L'output personalizzato del nostro script bash con il flag "-r" è mostrato nell'immagine qui sotto:

Ora eseguiremo lo script bash con il flag "-y" per vedere se produce l'output corretto o meno nel modo seguente:

$ bash getopts.Timido

L'output personalizzato del nostro script bash con il flag "-y" è mostrato nell'immagine qui sotto:

Ora eseguiremo lo script bash con il flag "-g" per vedere se produce l'output corretto o meno nel modo seguente:

$ bash getopts.sh -g

L'output personalizzato del nostro script bash con il flag "-g" è mostrato nell'immagine seguente:

Infine, eseguiremo il nostro script bash con qualsiasi bandiera casuale, io.e. Una bandiera che non è valida o una bandiera che non è menzionata nella nostra sceneggiatura bash dice "-a" nel modo seguente:

$ bash getopts.sh -a

Questa volta è stato eseguito il caso predefinito del nostro script bash che ha visualizzato un messaggio di errore da quando abbiamo usato un flag non valido.

Caso n. 2: passando bandiere insieme agli argomenti a uno script bash per la sua esecuzione in Linux Mint 20:

In questo esempio, creeremo uno script bash che prenderà un flag e un argomento come input dall'utente insieme al comando di esecuzione di quello script bash. A seconda del valore della flag e dell'argomento fornito, verrà prodotto il rispettivo output. La descrizione dettagliata dei passaggi coinvolti in questo scenario è la seguente:

Passaggio n. 1: scrivere uno script bash:

Lo script bash utilizzato per questo caso è mostrato nell'immagine qui sotto ed è molto simile a quello che abbiamo creato per il nostro caso n. 1. L'unica differenza è che questa volta non stiamo permettendo più flag. L'utente è autorizzato ad inserire il flag "-r". Tuttavia, il colon ":" dopo la flag "R" nella sceneggiatura bash indica che anche l'utente dovrebbe fornire un argomento insieme alla bandiera. Questo argomento verrà archiviato nella variabile "optarg" predefinita. Per visualizzare il valore dell'argomento fornito con il comando "eco", abbiamo usato un simbolo "$" prima della variabile "Optarg".

Passaggio n. 2: testare lo script bash:

Dopo aver salvato questo script bash, ora è il momento di testarlo. Ancora una volta, testeremo tutti i casi uno per uno. Innanzitutto, eseguiremo lo script bash con il flag "-r" e un argomento di esempio "nero" per vedere se produce l'output corretto o meno nel modo seguente:

$ bash getopts.sh -r nero

L'output personalizzato del nostro script bash con l'argomento "-r" e "nero" è mostrato nell'immagine qui sotto:

Ora testeremo questo script con un flag non valido e un argomento valido nel modo seguente:

$ bash getopts.Sh -a Black

Questa volta è stato eseguito il caso predefinito del nostro script bash che ha visualizzato un messaggio di errore da quando abbiamo usato un flag non valido.

Ora eseguiremo questo script bash mentre ometteremo la bandiera e passiamo solo un argomento valido nel modo seguente:

$ bash getopts.Sh nero

Questa volta, nessun output verrà prodotto sul terminale o in altre parole, il nostro script bash non eseguirà poiché abbiamo saltato una bandiera obbligatoria.

Infine, eseguiremo questo script bash ometteremo l'argomento e passiamo semplicemente la flag valida nel modo seguente:

$ bash getopts.sh -r

Ancora una volta, è stato eseguito il caso predefinito del nostro script bash che ha visualizzato un messaggio di errore da quando abbiamo saltato l'argomento obbligatorio.

Conclusione:

Questi due esempi sono una rappresentazione molto bella dell'uso del comando "getopts" in uno script bash in Linux Mint 20. Puoi anche creare scenari più complessi in Bash e abbinarli al comando "getopts" per prendere più di un argomento e flag dall'utente come input.