Come gestire gli argomenti della riga di comando in uno script Bash

How Handle Command Line Arguments Bash Script



In molti casi, gli script bash richiedono valori di argomento per fornire opzioni di input allo script. Puoi gestire gli argomenti della riga di comando in uno script bash in due modi. Uno è usando variabili argomento e un altro è usando getopts funzione. In questo tutorial viene mostrato come gestire gli argomenti della riga di comando.

Utilizzo delle variabili di argomento:

La variabile di argomento parte da $ 0 Il nome del file di script principale è memorizzato in $0 che riceve i valori degli argomenti dagli argomenti della riga di comando. Se vengono passati due argomenti nella riga di comando, i valori degli argomenti verranno ricevuti in sequenza nelle variabili $1 e $2.







Esempio -1: Invio di tre valori numerici come argomenti

Crea un file bash e aggiungi il seguente codice. Lo script riceverà tre valori di argomento e memorizzerà in $1, $2 e $3. Conterà il numero totale di argomenti, stamperà i valori degli argomenti con loop e senza loop. Infine, stampa la somma di tutti i valori degli argomenti.



#!/bin/bash

# Conteggio del numero totale di argomenti
buttato fuori 'Numero totale di argomenti: $#'

# Lettura dei valori degli argomenti individualmente
buttato fuori 'Primo argomento valore: $1'
buttato fuori 'Valore secondo argomento: $2'
buttato fuori 'Valore del terzo argomento: $3'

# Leggere i valori degli argomenti usando il ciclo
perargvalin '[e-mail protetta]'
fare
buttato fuori -n '$argval'
fatto

# Aggiunta di valori di argomento
somma= $(($ 1+$ 2+$ 3))

# stampa il risultato
buttato fuori -e ' Risultato della somma =$somma'

Esegui il file bash con tre valori di argomenti numerici.



$bashcmdline1.shcinquanta 35 quindici





Esempio -2: prendere il nome del file come argomento

Crea un file bash e aggiungi il seguente codice per contare il numero totale di caratteri di qualsiasi file. Qui, il nome del file verrà passato come argomento della riga di comando.

#!/bin/bash
nome del file=$ 1
totalchar=``WC -C $nomefile``
buttato fuori 'Il numero totale di caratteri è$ totalchar'

Esegui lo script bash con il nome del file come valore di singolo argomento ed esegui un altro comando per verificare il numero totale di caratteri di quel file. Qui, il file impiegato.txt viene utilizzato come valore dell'argomento. Il numero totale di caratteri del file impiegato.txt è 204.



$bashcmdline2.sh impiegato.txt
$WC -Cdipendente.txt

Usando la funzione getopts:

Se si desidera archiviare i dati nel database o in qualsiasi file o creare un report su un formato particolare basato sui valori degli argomenti della riga di comando, allora getopts la funzione è l'opzione migliore per eseguire l'attività. È una funzione Linux incorporata. Quindi, puoi facilmente usare questa funzione nel tuo script per leggere i dati formattati dalla riga di comando.

Esempio -1: lettura degli argomenti tramite la funzione getopts

Crea un file bash e aggiungi il seguente script per capire l'uso di getopts funzione. La funzione 'getopts' viene utilizzata con il ciclo while per leggere le opzioni degli argomenti della riga di comando e i valori degli argomenti. Qui vengono utilizzate 4 opzioni che sono 'io', 'n', 'm' e ‘e’ . l'istruzione case viene utilizzata per abbinare la particolare opzione e memorizzare il valore dell'argomento in una variabile. Infine, stampa i valori della variabile.

#!/bin/bash
mentre getopts ':in me:'arrabbiato;fare
Astuccio $ argomento in
io) ID=$OPTARG;;
n) Nome=$OPTARG;;
m) Data di produzione=$OPTARG;;
e) Data di scadenza=$OPTARG;;
esac
fatto
buttato fuori -e ' $ID $Nome $Manufacturing_date $Expire_date '

Eseguire il file con le seguenti opzioni e valori degli argomenti. Qui, p100 è il valore dell'opzione -i, 'Hot Cake' è il valore dell'opzione -n, '01-01-2018′ è il valore dell'opzione -m e '06-01-2018′ è il valore di - e opzione.

$bashcmdline3.sh-iop001-n 'Torta calda' -m '01-01-2018 ' -e '06-01-2018 '

Quando è necessario inviare valori semplici in uno script, è meglio utilizzare variabili di argomento. Ma se vuoi inviare i dati in modo formattato, allora è meglio usare la funzione getopts per recuperare i valori degli argomenti. Per maggiori informazioni guarda il video !