Uso del comando shift in bash

Uso del comando shift in bash
Quando gli argomenti della riga di comando prendono input dall'utente, il primo argomento contiene il nome dello script. A volte è necessario il nome dello script per omettere per scopi di programmazione. Questa attività può essere eseguita facilmente utilizzando qualsiasi ciclo in bash. Usando il 'spostare'Il comando è un altro modo per fare l'attività. Questo comando viene utilizzato per spostare un parametro posizionale a sinistra per impostazione predefinita. I diversi usi del 'spostare'Il comando in bash ha mostrato in questo tutorial.

Sintassi:

La sintassi del comando "shift" è riportata di seguito. Questo comando ha un argomento opzionale che viene utilizzato per impostare il numero di posizioni che verranno spostate a sinistra. L'argomento deve essere positivo. Se il valore dell'argomento è impostato su 0, allora non verrà spostato alcun argomento della riga di comando. Se non viene utilizzato alcun argomento, un argomento di comando verrà spostato per impostazione predefinita.

Shift [N]

Esempio-1: stampa tutti i valori degli argomenti di comando

Crea un file bash con il seguente script per stampare i valori dell'argomento della riga di comando usando "Loop senza comando" shift "e mentre" loop con comando "shift". Ogni valore dell'argomento verrà archiviato nella variabile, il valore quando il per Loop eseguirà e questa variabile verrà stampata in seguito. IL inizio la variabile ha utilizzato Mentre Loop per leggere ogni valore dell'argomento usando il 'spostare'comanda e termina il ciclo quando vengono stampati tutti gli argomenti della riga di comando. Un contatore variabile, io, è stato usato nello script per visualizzare il numero dell'argomento. Se non viene fornito alcun argomento della riga di comando al momento dell'esecuzione, verrà impostata una stringa vuota per il primo argomento e nulla verrà stampato.

#!/Bin/Bash
#Print i valori di aegument della riga di comando utilizzando per e while loop
#Sept il contatore
i = 1
Echo "L'argomento valori senza comando shift:"
#Iterali tutti i valori utilizzando per loop
per valore in "$@"
Fare
echo "argomento no. $ i = $ valore "
((i ++))
Fatto
#Re-inizializzare il contatore
i = 1
#Sept l'argomento opzionale
start = $ 1:-""
Echo "I valori dell'argomento utilizzando il comando shift:"
#Terali tutti i valori usando While Loop
mentre ["$ start" != ""];
Fare
echo "argomento no. $ i = $ start "
#Shift ogni argomento di 1
spostare
inizio = $ 1
((i ++))
Fatto

Produzione:

Secondo il seguente output, lo script sopra è stato eseguito con tre valori di argomenti di comando. I valori dell'argomento vengono stampati due volte usando il loop e durante il ciclo con il 'spostare'Comando.

Esempio 2: stampare i valori dell'argomento di posizione uniforme

Nell'esempio precedente, nessun argomento ha usato con il 'spostare'Comando e il valore dell'argomento è stato spostato da 1 a sinistra. L'uso dell'argomento opzionale di 'spostare'Il comando è mostrato in questo esempio. Crea un file bash con il seguente script per stampare i valori dell'argomento della riga di comando della posizione pari. Il numero totale di argomenti della riga di comando ha contato e archiviato nella variabile totale, ed è stato usato in Mentre Loop per iterare il ciclo. IL 'spostare'Il comando è stato utilizzato con l'argomento valore 2 per spostare due argomenti della riga di comando in ogni iterazione del loop. Ogni argomento di comando delle posizioni pari verrà stampato con spazio dopo aver eseguito lo script.

#!/Bin/Bash
#Count il numero totale di argomenti della riga di comando
totale = $#
Echo "Gli argomenti totali sono: $ totale"
Echo "I valori dell'argomento della posizione pari sono:"
mentre [$ totale -GE0];
Fare
#Print il valore dell'argomento con lo spazio
echo -n $ 1 ""
#Shift due argomenti
Shift 2
#Decrement il contatore di 2
((totale = $ totale-2))
Fatto
#Add Nuova linea
eco

Produzione:

Secondo il seguente output, lo script sopra ha eseguito i valori degli argomenti della riga di comando senza il nome dello script. Dopo aver stampato il valore 89, il valore successivo della posizione pari è 34 e il valore successivo della posizione pari è 12.

Esempio-3: leggi i valori particolari di argomenti specifici

Il modo per leggere i valori dell'argomento della riga di comando specifici usando il 'spostare'comando senza usare alcun ciclo ha mostrato in questo esempio. Crea un file bash con il seguente script. Il numero totale di argomenti della riga di comando è stato conteggiato nello script e se il valore totale è inferiore a 6, lo script verrà terminato visualizzando un messaggio di errore. Se gli argomenti della linea di comando vengono forniti correttamente, il secondo argomento conterrà il nome host, il quarto argomento conterrà il nome utente e il sesto argomento conterrà la password. Il nome host verrà archiviato in una variabile spostando un argomento lasciato. Il nome utente verrà archiviato in una variabile spostando due argomenti rimasti. La password verrà archiviata in una variabile spostando di nuovo due argomenti. Successivamente, i valori hostname, nome utente e password verranno confrontati con tre valori di stringa per autenticare l'utente.

#!/Bin/Bash
#Count il numero totale di argomenti della riga di comando
totale = $#
#Check I 6 valori di argomento sono dati o no
se [$ totale -lt6]; Poi
Echo "Numero non valido di argomenti."
altro
#Shift un argomento
Shift 1
#Redi il valore del nome host
nome host = $ 1
#Shift due argomenti
Shift 2
#Leggi il valore del nome utente
nome utente = $ 1
#Shift due argomenti
Shift 2
#Leggi il valore della password
password = $ 1
fi
#Cuck i valori per l'autenticazione
if [[$ hostname == "localhost" && $ username == "fahmida" && $ password == "1234"]]; Poi
echo "autenticazione di successo."
altro
eco "autenticazione senza successo."
fi

Produzione:

Secondo l'output, lo script sopra è stato eseguito due volte con sei valori di argomento. Nella prima esecuzione, i dati validi sono stati passati e un messaggio di successo è stato stampato. Nella seconda esecuzione, sono stati passati dati non validi e un messaggio di errore è stato stampato.

Conclusione:

Il comando "Shift" è un comando molto utile per la lettura di particolari valori degli argomenti della riga di comando. In questo tutorial sono stati descritti diversi usi di questo comando utilizzando più esempi per aiutare i lettori a comprendere lo scopo di usare questo comando in bash script.