Come posso passare un argomento in uno script Bash?

How Do I Pass Argument Bash Script



La maggior parte degli utenti di Linux Mint 20 si trova bloccata quando passa un argomento in uno script bash. Puoi passare gli argomenti a qualsiasi script bash quando viene eseguito. Esistono diversi modi semplici e utili per passare argomenti in uno script bash. In questa guida all'articolo, ti faremo conoscere alcuni modi molto semplici per passare e utilizzare argomenti nei tuoi script bash.

Passaggio di argomenti utilizzando variabili predefinite:

Crea un nuovo file con qualsiasi nome utilizzando il comando touch, ad esempio file.sh.







$tocconome del file



Apri questo file appena creato e aggiungi uno script bash. Ho aggiunto alcune variabili predefinite, ad es. $1, $2 e $3 di conseguenza. Qualsiasi argomento verrà passato attraverso il terminale verrà memorizzato nelle variabili indicate.







Devi eseguire questo file usando il comando ./ seguito da alcuni argomenti. Come puoi vedere nell'immagine che quando ho passato gli argomenti, si verifica un errore: Permesso negato. Questo perché questo file non ha diritti di esecuzione.

$./nome file argomento1 argomento2 argomento

Quindi, per concedere i diritti di esecuzione a questo file, usa il comando sudo chmod per farlo.



$sudo chmod+x nome file

Ora, esegui di nuovo il file usando lo stesso comando sopra. Questa volta ho fornito argomenti diversi. Vedrai che gli argomenti appena passati sono memorizzati nelle variabili predefinite.

Passaggio del nome dello script della shell come argomento:

Ora, usando lo stesso vecchio file file.sh con una piccola modifica nelle sue variabili predefinite. Devi aggiungere la variabile $0 nello script come mostrato.

Eseguendo lo stesso comando di script ./ shell, il nome dello script di shell, ad es. ./filename verrà memorizzato nella variabile $0 come argomento.

Passaggio di argomenti come array a variabile:

A partire dallo stesso file file.sh, devi aggiungere alcune righe extra nel vecchio script. Dichiarare una variabile denominata array. Aggiungi una variabile predefinita [email protected] che memorizzerà gli argomenti inseriti dall'utente come un array. Questi argomenti verranno analizzati in array variabili. L'ultima riga visualizzerà tutti gli argomenti dell'array di variabili ordinati per numero di indice.

Esegui lo script ./ shell. Vedrai che visualizzerà gli argomenti o i valori memorizzati come un array in [email protected] analizzato nell'array variabile ma non il nome dello script della shell nella seconda istruzione echo. Avrai il seguente output.

$./nome file argomento1 argomento2 argomento

Usa lo stesso file con lo stesso script. Basta rimuovere ${array[3]} dall'ultima riga come mostrato nell'immagine.

Dopo aver eseguito il comando ./, vedrai un output simile a quello ottenuto nell'esempio precedente senza modifiche.

Puoi anche ottenere lo stesso risultato sostituendo l'ultima riga dello script bash con una sola parola. Devi solo aggiungere [email protected] nell'istruzione echo e visualizzerà gli argomenti presenti in questo array di variabili.

Quindi, eseguendo di nuovo il comando ./, otterrai gli stessi risultati.

Controlla il numero totale di argomenti passati:

Al contrario, se vuoi conoscere il numero totale di argomenti passati dall'utente, puoi anche farlo. A questo scopo, devi solo sostituire [email protected] con $# in echo.

Eseguendo nuovamente il comando ./, ora vedrai l'intera figura degli argomenti passati allo script. Nel nostro caso, vengono passati 3 argomenti come valore.

Crea output riga per riga di argomenti:

Crea un nuovo file test.sh nella directory home. Aggiungi lo script bash come mostrato.

Ora esegui lo stesso vecchio comando con argomenti diversi. In primo luogo, vedrai l'errore: Permesso negato.

Devi eseguire il comando chmod per concedere a questo file i privilegi sudo. Successivamente, esegui nuovamente il comando di script ./ shell. E otterrai l'output ordinato riga per riga degli argomenti.

Limita la variabile tramite il numero di indice dell'argomento:

Se vuoi limitare la variabile usando il suo numero di indice, puoi farlo molto facilmente. Aggiungi parentesi graffe dopo il segno $ e aggiungi il numero di indice dell'argomento che desideri visualizzare prima degli altri argomenti.

Se gli argomenti forniti dagli utenti sono inferiori al numero di indice fornito nella variabile limite, otterrai un valore di argomento vuoto. Ad esempio, ho fornito 4 argomenti, ma ho fornito il valore dell'argomento 05 da visualizzare. In questa situazione, la variabile verrà visualizzata vuota perché il quinto argomento non è stato passato.

Ma quando passi il numero uguale o maggiore di argomenti nel comando, otterrai il valore visualizzato nel risultato come mostrato.

Verifica di argomenti di valore specifici:

Crea un nuovo file con il nome Check.sh nella tua home directory. Aggiungi lo stesso script bash come mostrato nell'immagine qui sotto. In questo script, abbiamo una variabile var per memorizzare il valore dell'argomento passato dall'utente. Quindi abbiamo un'istruzione if, che verificherà se il valore dell'argomento corrisponde o meno. Se il valore dell'argomento corrisponde al valore fornito tra parentesi, verrà eseguita la prima istruzione echo. Se il valore non corrisponde, verrà eseguita la seconda istruzione echo.

Quando eseguiamo il comando script della shell, genererà un errore. Usando il comando chmod, possiamo correggere questo errore.

Successivamente, esegui lo script della shell per il file specifico con un valore di argomento. Nel nostro caso, abbiamo fornito Aqsa come valore dell'argomento, che è lo stesso del valore visualizzato tra parentesi. Quindi lo script bash eseguirà la prima istruzione echo come mostrato.

D'altra parte, se fornisci i diversi valori degli argomenti nello script della shell, visualizzerà l'altra istruzione echo. Qui, ho aggiunto Rimsha come valore dell'argomento, che è diverso dal valore fornito nell'istruzione if. Quindi lo script bash eseguirà la seconda istruzione echo.

Conclusione:

Spero che questa guida ti abbia aiutato a sufficienza per avere una buona padronanza su come passare argomenti alle variabili predefinite, passare il valore dell'argomento come array a una variabile, ottenere il numero totale di argomenti passati, l'output riga per riga degli argomenti, limitare l'argomento output utilizzando il numero di indice, verificando l'argomento del valore specifico e molti altri.