Come si passa un argomento nominato in uno script di shell?

Come si passa un argomento nominato in uno script di shell?
Gli script Shell in Linux consentono di scrivere programmi con valori e programmi con codice duro che possono prendere input dell'utente in fase di esecuzione. Questi input utente sono noti come parametri o argomenti. Tutti noi abbiamo generalmente familiarità con il passaggio di argomenti normali agli script di shell. Tuttavia, a volte potresti sentire il bisogno di passare "argomenti nominati" agli script di shell. Questo articolo ti guiderà di più su ciò che sono esattamente nominati argomenti e il loro bisogno negli script di shell. Dopodiché, condivideremo un vasto esempio di passaggio degli argomenti nominati a uno script di shell in Ubuntu 20.04.

Denominati argomenti negli script di shell in Ubuntu 20.04

Ormai, comprendiamo chiaramente che possiamo facilmente scrivere tali script di shell in Ubuntu 20.04 che sono in grado di prendere argomenti come input dall'utente durante l'esecuzione di questi script dal terminale. Tuttavia, un diverso tipo di argomenti noti come "argomenti nominati" è anche comunemente usato all'interno degli script di shell. Un argomento nominato è quello che è simboleggiato da una coppia di "valore nome". Questa coppia di "valore del nome" è definita all'interno dello script shell e l'argomento corrispondente viene approvato allo stesso modo mentre si eseguono lo script mentre si passa i normali argomenti.

Allora qual è il significato di usare gli argomenti nominati negli script di shell? Bene, a volte, si definisce gli argomenti negli script di shell, ma mentre esegui quegli script, potrebbe non essere necessariamente bisogno di fornire tutti quegli argomenti. Gli argomenti nominati ti consentono di saltare i valori di tutti questi argomenti che desideri durante l'esecuzione della sceneggiatura. In tal caso, se avessi usato gli argomenti normali, il tuo sistema avrebbe reso un messaggio di errore e non ti avrebbe permesso di procedere con l'esecuzione del tuo script se avessi saltato qualsiasi argomento predefinito all'interno del tuo script.

Inoltre, a volte, potresti anche cambiare l'ordine di passare gli argomenti durante l'esecuzione di uno script di shell, i.e., Passano gli argomenti in ordine casuale invece di quello che viene seguito mentre dichiara le variabili all'interno dello script shell. Gli argomenti nominati ti consentono facilmente di farlo, mentre d'altra parte, se avessi usato gli argomenti normali in questa situazione, quindi di nuovo, un messaggio di errore sarebbe stato generato a causa del non seguire l'ordine corretto degli argomenti. Pertanto, si può dire che gli argomenti nominati forniscono una maggiore flessibilità agli utenti fornendo al contempo input invece di limitarli.

Ora, quando ti rendi conto dell'importanza di usare gli argomenti nominati negli script di shell, vediamo come possiamo usare questi argomenti all'interno di uno script di shell su un Ubuntu 20.04 Sistema.

Esempio di passaggio di argomenti denominati a uno script di shell in Ubuntu 20.04

Per passare gli argomenti nominati a uno script di shell in Ubuntu 20.04, abbiamo progettato uno script di shell mostrato nell'immagine seguente. In questa sezione eseguiremo questo script di shell con argomenti o valori di input.

In questo script di shell, abbiamo usato la funzione "getopts" integrata nella shell all'interno di un po '. Questa funzione porta sostanzialmente i parametri nominati come input dall'utente. Quindi, abbiamo definito tre diversi casi, io.e., "N, A e G" corrispondenti alle nostre variabili "nome, età e genere" rispettivamente. Questi casi sono definiti rispetto alla variabile "flag" su cui eseguirà la nostra istruzione Case-ESAC. L'istruzione Case-ESAC nella shell è sostanzialmente un equivalente dell'istruzione Switch in C. Quindi, all'interno del blocco Case-ESAC, abbiamo elencato tutti e tre i casi dichiarati in precedenza, i.e., n, a e g. Contro ogni caso, abbiamo dichiarato una variabile che è uguale all'argomento fornito dall'utente come input durante l'esecuzione dello script. Ogni argomento fornito dall'utente verrà assegnato alla variabile pertinente ogni volta che questo script verrà eseguito. Quindi, abbiamo finalmente tre comandi "eco" che sono lì per stampare i valori del nome, dell'età e del sesso delle variabili, rispettivamente.

Dopo aver progettato questo script, lo eseguiremo prima con argomenti normalmente denominati nell'ordine corretto come segue:

$ Bash nominato.sh -n aqsa -a 27 -g femmina

Qui, chiamato.Sh rappresenta il nome del nostro script di shell. Inoltre, da questo comando puoi vedere che abbiamo elencato per primi le flag, seguite dai rispettivi argomenti da approvare. Inoltre, puoi notare chiaramente che abbiamo superato questi argomenti nell'ordine esatto in quanto sono stati definiti nel nostro script di shell.

Ora, quando questo script shell viene eseguito, sarai in grado di vedere i valori assegnati a tutti i parametri nominati sul terminale, come mostrato nell'immagine seguente:

Una volta eseguito questo script nel flusso normale, possiamo provare un piccolo esperimento eseguendo questo script di shell con gli stessi valori di input ma in un ordine leggermente diverso, come mostrato nel comando seguente:

$ Bash nominato.sh -n aqsa -g femmina -a 27

In questo comando puoi vedere che abbiamo cambiato l'ordine degli argomenti di genere e età da quello che è stato definito inizialmente nello script shell. Ora cercheremo di scoprire se questi valori sono assegnati correttamente ai nostri argomenti nominati o no.

Quando questo comando viene eseguito, sarai in grado di vedere dal suo output che, indipendentemente dall'ordine in cui gli argomenti vengono passati durante l'esecuzione dello script shell, verranno comunque assegnati alle variabili corrette come mostrato nell'immagine seguente:

In alcune situazioni, un utente potrebbe non voler rivelare la propria età. In quella situazione, eseguirà questo script di shell nel modo seguente:

$ Bash nominato.sh -n aqsa -g femmina

Nell'output di questo script di shell, quando viene eseguito con gli argomenti mostrati sopra, è possibile vedere chiaramente che il nostro sistema non ha generato messaggi di errore; Piuttosto, ha eseguito senza intoppi il nostro script con i parametri forniti lasciando la variabile di età vuota.

Allo stesso modo, puoi anche provare a saltare la variabile di genere, fornendo solo il valore per la variabile del nome nel modo mostrato di seguito:

$ Bash nominato.sh -n aqsa

L'output corrispondente per questo comando è mostrato nella seguente immagine:

Infine, proveremo a eseguire questo script senza fornire argomenti come segue:

$ Bash nominato.sh

Ancora una volta, puoi vedere dal seguente output che non viene generato alcun messaggio di errore; Piuttosto, il nostro script ha eseguito con successo anche senza alcun argomento fornito.

Conclusione

Dall'esempio dettagliato discusso in questo tutorial, possiamo concludere che sarà ancora eseguito con successo indipendentemente dall'ordine degli argomenti nominati forniti a uno script di shell. Inoltre, anche se non fornirai argomenti al tuo script, può comunque essere eseguito senza errori. Tuttavia, l'unica cosa di cui devi fare attenzione durante il passaggio degli argomenti indicati è usare il flag corretto seguito dal suo valore corrispondente durante l'esecuzione dello script shell.