Come si controlla il numero di argomenti in bash?

Come si controlla il numero di argomenti in bash?

È possibile fornire qualsiasi numero desiderato di argomenti della riga di comando ai tuoi script bash in Ubuntu 20.04 durante l'esecuzione. Tuttavia, a volte gli script sono scritti in modo così dinamico che anche il programmatore non sa esattamente quanti argomenti saranno forniti dall'utente in fase di esecuzione, ma potrebbe voler usare quel numero totale da qualche parte più avanti in quello script.

In questa situazione, ci deve essere un modo attraverso il quale è possibile verificare il numero totale di argomenti passati a un particolare script bash. Per questo, Bash ha una variabile speciale, io.e., $#. Per capire come funziona questa variabile speciale, dovrai passare attraverso tutti gli esempi condivisi in questo articolo.

Metodo per controllare il numero di argomenti in Bash in Ubuntu 20.04:

Per spiegarti il ​​metodo di verificare il numero di argomenti forniti a uno script bash in Ubuntu 20.04, abbiamo progettato alcuni esempi discussi di seguito:

Esempio n. 1: stampare il numero totale di argomenti in Bash:

Per semplicemente stampare il numero totale di argomenti passati a uno script bash in Ubuntu 20.04, puoi scrivere uno script bash come quello mostrato nella seguente immagine:

La variabile speciale $# detiene sempre il numero totale di argomenti passati a qualsiasi script bash specifico.

Per testare questo script, l'abbiamo eseguito con tre argomenti o parametri come segue:

$ bash argomenti.Sh 1 2 3

Qui, argomenti.Sh è il nome del nostro file di script bash, mentre 1, 2 e 3 sono gli argomenti che abbiamo passato a questo script bash. Significa che il numero totale di argomenti in questo caso di test è "3". Proviamo a scoprire se questo script bash ha mostrato correttamente il numero totale di argomenti o no.

Quando eseguiamo questo script bash, mostrerà il numero totale di argomenti passati ad esso, che può essere visto dall'immagine mostrata di seguito:

Esempio n. 2: stampare il numero totale di argomenti insieme ai valori degli argomenti con parametri posizionali in Bash:

Ora scriveremo uno script bash che stamperà i valori degli argomenti passati a uno script bash e al loro numero totale. Per fare ciò, la sceneggiatura bash è la seguente:

In questo script bash, abbiamo prima stampato i valori dei tre parametri posizionali. Significa che qualunque argomento verrà passato a questo script bash dal terminale verrà archiviato in questi tre parametri posizionali. Dopodiché, abbiamo semplicemente stampato il valore della variabile speciale $#.

Nel nostro primo esempio, eseguiremo questo script con gli stessi argomenti che abbiamo trasmesso allo script bash. Questa volta, quando eseguiremo il nostro script bash, i valori dei tre argomenti passati verranno visualizzati anche sul terminale insieme al loro numero totale, come puoi vedere dall'immagine mostrata di seguito:

Esempio n. 3: stampare il numero totale di argomenti insieme ai valori degli argomenti con la variabile speciale $@ in bash:

L'obiettivo di questo esempio è lo stesso di quello del nostro secondo esempio; Tuttavia, in questo esempio, useremo un'altra variabile speciale, i.e., $@, per stampare i valori degli argomenti passati. Fondamentalmente, la variabile $@ Special può contenere tutti gli argomenti che vengono passati a uno script bash. Per capirlo, puoi dare un'occhiata al seguente script bash che abbiamo progettato per te:

In questo script bash, abbiamo semplicemente stampato il valore della variabile speciale $@, i.e., Tutti gli argomenti passati e il valore della variabile speciale $#, i.e., il numero totale degli argomenti passati sul terminale.

Per vedere come funziona questo script bash modificato, lo abbiamo nuovamente eseguito con gli stessi parametri che abbiamo fatto nei due esempi sopra. Quando questo script è stato eseguito, l'output si è rivelato essere esattamente lo stesso che abbiamo avuto nel nostro secondo esempio.

Esempio n. 4: stampare il numero totale di argomenti insieme ai valori degli argomenti con la variabile speciale $* in bash:

Questa è l'ennesima versione modificata del nostro secondo esempio poiché, in questo esempio, useremo la variabile speciale $* per stampare i valori degli argomenti passati sul terminale. Come la variabile speciale $@, la variabile speciale $* può anche contenere i valori di tutti gli argomenti passati a un particolare script di bash. Lo script bash modificato è mostrato nell'immagine seguente:

In questo script bash, abbiamo semplicemente stampato il valore della variabile speciale $*, i.e., Tutti gli argomenti passati e il valore della variabile speciale $#, i.e., il numero totale degli argomenti passati sul terminale.

Per testare questo script bash e visualizzare il suo output, l'abbiamo eseguito con gli stessi parametri che abbiamo fatto nei nostri primi tre esempi. Questa volta anche quando è stato eseguito il nostro script bash, il suo output era lo stesso di quello del nostro secondo e terzo esempi, come puoi vedere dalla seguente immagine:

Esempio # 5: Mettere un limite al numero totale di argomenti in Bash:

Infine, la variabile speciale $# può anche essere utilizzata per limitare il numero totale di argomenti passati a uno script bash in Ubuntu 20.04. Per capire questo fenomeno, dovrai passare attraverso lo script bash mostrato nell'immagine qui sotto:

In questo script bash, abbiamo una dichiarazione "if" che viene applicata alla variabile speciale $#. Volevamo limitare il numero di argomenti a "3". Se gli argomenti saranno inferiori a "3" un messaggio di errore verrà stampato sul terminale. Allo stesso modo, se gli argomenti saranno maggiori di "3", un messaggio di errore verrà stampato sul terminale. Tuttavia, se gli argomenti forniti saranno uguali a "3" solo allora i valori di questi argomenti saranno stampati sul terminale.

Volevamo testare tutte e tre le condizioni di questo script bash. Per questo, abbiamo prima eseguito questo script con tre parametri e l'uscita corrispondente è mostrata nella seguente immagine:

Successivamente, abbiamo eseguito questo script bash con quattro argomenti, a causa dei quali è stato stampato un messaggio di errore sul terminale come mostrato nell'immagine seguente:

Infine, abbiamo eseguito questo script bash con due argomenti, a causa dei quali un messaggio di errore è stato nuovamente stampato sul terminale come mostrato nella seguente immagine:

Conclusione:

La variabile speciale $# ti consentirà di scoprire il numero totale di argomenti passati a qualsiasi script bash molto facilmente. Dai un'occhiata agli esempi condivisi in questo articolo, avresti un'idea chiara sul funzionamento di questa variabile speciale. Pertanto, ora puoi scrivere tali script bash senza preoccupazioni che in qualche modo utilizzino il numero totale di argomenti forniti a quegli script bash in fase di esecuzione su Ubuntu 20.04.