Istruzioni in loop nello scripting di shell: Ci sono in totale 3 istruzioni in loop che possono essere utilizzate nella programmazione bash
Tabella dei contenuti
- L'istruzione 'mentre' nello script di shell in Linux
- Istruzione 'for' nello script di shell in Linux
- Istruzione 'fino a' nello script Shell in Linux
- Esempi di istruzioni in loop
Per alterare il flusso delle istruzioni del ciclo, vengono utilizzati due comandi:
- rottura
- Continua
Le loro descrizioni e sintassi sono le seguenti:
L'istruzione 'mentre' nello script di shell in Linux
Qui il comando viene valutato e in base al ciclo risultante verrà eseguito, se il comando viene elevato a falso il ciclo verrà terminato Quello.
#/bin/bash while do done>
Implementazione del ciclo 'While' nello script di shell.
Per prima cosa creiamo un file utilizzando un editor di testo in Linux. In questo caso, stiamo utilizzando l'editor `vim`.
vim looping.sh>
Puoi sostituire looping.sh con il nome desiderato.
Quindi rendiamo eseguibile il nostro script utilizzando il comando `chmod` in Linux.
chmod +x looping.sh>
#/bin/bash
a=0
# È inferiore all'operatore
numero intero Java in stringa#Iterate il ciclo fino a meno di 10
mentre [ $a -lt 10 ]
Fare
# Stampa i valori
eco $a
# incrementa il valore
a=`espressione $a + 1`
Fatto
Produzione:

Mentre Ciclo in Linux
Spiegazione:
-
#/bin/bash>: specifica che lo script deve essere interpretato utilizzando la shell Bash. -
a=0>: Inizializza una variabilea>con il valore 0. -
while [ $a -lt 10 ]>: avvia un ciclo while che continua finché dura il valorea>è inferiore a 10. -
do>: Contrassegna l'inizio del corpo del loop. -
echo $a>: Stampa il valore corrente dia>la consolle. -
a=>espressione $a + 1 : Incrementa il valore dia>di 1. Ilexpr>Il comando viene utilizzato per le espressioni aritmetiche. -
done>: Contrassegna la fine del ciclo.
Istruzione 'for' nello script Shell in Linux
Il ciclo for opera su elenchi di elementi. Ripete una serie di comandi per ogni elemento di un elenco.
Qui var è il nome di una variabile e da word1 a wordN sono sequenze di caratteri separati da spazi (parole). Ogni volta che viene eseguito il ciclo for, il valore della variabile var viene impostato sulla parola successiva nell'elenco di parole, da parola1 a parolaN.
Sintassi:
#/bin/bash for in do done>
Implementazione del ciclo 'for' con l'istruzione 'break' nello script di shell.
Per prima cosa creiamo un file utilizzando un editor di testo in Linux. In questo caso, stiamo utilizzando l'editor `vim`.
vim for.sh>
Puoi sostituire for.sh con il nome desiderato.
Quindi rendiamo eseguibile il nostro script utilizzando il comando `chmod` in Linux.
chmod +x for.sh>
#/bin/bash
#Inizio del ciclo for
per a in 1 2 3 4 5 6 7 8 9 10
Fare# se a è uguale a 5 interrompe il ciclo
se [$a == 5]
Poi
rottura
Essere# Stampa il valore
echo Iterazione no $a
Fatto
Produzione:

Dichiarazione di interruzione per Loop in Linux
Spiegazione:
#/bin/bash>: specifica che lo script deve essere interpretato utilizzando la shell Bash.for a in 1 2 3 4 5 6 7 8 9 10>: avvia un ciclo for che ripete i valori da 1 a 10, assegnando ciascun valore alla variabilea>in ogni iterazione.do>: Contrassegna l'inizio del corpo del loop.if [ $a == 5 ]>: Controlla se il valore correntea>è uguale a 5.then>: Contrassegna l'inizio del blocco condizionale da eseguire se la condizione è vera.break>: Esce dal ciclo se la condizione è vera.
fi>: Contrassegna la fine del blocco condizionale.
echo 'Iteration no $a'>: Stampa un messaggio che indica il numero di iterazione corrente.done>: Contrassegna la fine del ciclo.
Lo script imposta un ciclo for che ripete i valori da 1 a 10. Durante ogni iterazione, controlla se il valorea>è uguale a 5. Se lo è, il ciclo viene chiuso utilizzando ilbreak>dichiarazione. Altrimenti stampa un messaggio indicante il numero di iterazione corrente. Il ciclo continua finché non completa tutte le iterazioni o finché non incontra un'istruzione break.
Implementazione del ciclo 'for' con l'istruzione 'continue' nello script di shell.
Per prima cosa creiamo un file utilizzando un editor di testo in Linux. In questo caso, stiamo utilizzando l'editor `vim`.
vim for_continue.sh>
Puoi sostituire for_continue.sh con il nome desiderato.
Quindi rendiamo eseguibile il nostro script utilizzando il comando `chmod` in Linux.
chmod +x for_continue.sh>
#/bin/bash
per a in 1 2 3 4 5 6 7 8 9 10
Fare# se a = 5 continua il ciclo e
# non passare alla riga 8se [$a == 5]
Poi
Continua
Essere
echo Iterazione no $a
Fatto
Produzione:

continua l'istruzione nel ciclo for in Linux
Spiegazione:
-
#/bin/bash>: specifica che lo script deve essere interpretato utilizzando la shell Bash. -
for a in 1 2 3 4 5 6 7 8 9 10>: avvia un ciclo for che ripete i valori da 1 a 10, assegnando ciascun valore alla variabilea>in ogni iterazione. -
do>: Contrassegna l'inizio del corpo del loop. -
if [ $a == 5 ]>: Controlla se il valore correntea>è uguale a 5.-
then>: Contrassegna l'inizio del blocco condizionale da eseguire se la condizione è vera.-
continue>: Salta il resto del corpo del ciclo e passa all'iterazione successiva se la condizione è vera.
-
-
fi>: Contrassegna la fine del blocco condizionale.
-
-
echo 'Iteration no $a'>: Stampa un messaggio che indica il numero di iterazione corrente. Questa riga viene saltata sea>è uguale a 5 a causa dicontinue>dichiarazione. -
done>: Contrassegna la fine del ciclo.
Lo script imposta un ciclo for che ripete i valori da 1 a 10. Durante ogni iterazione, controlla se il valorea>è uguale a 5. Se lo è, il ciclo continua all'iterazione successiva senza eseguire le istruzioni rimanenti nel corpo del ciclo. Altrimenti stampa un messaggio indicante il numero di iterazione corrente. Il ciclo continua finché non vengono completate tutte le iterazioni.
Istruzione 'fino a' nello script Shell in Linux
Il ciclo Until viene eseguito tante volte quante la condizione/comando risulta falsa. Il ciclo termina quando la condizione/comando diventa vera.
Sintassi:
#/bin/bash until do done>
Implementazione del ciclo 'until' nello script di shell
Per prima cosa creiamo un file utilizzando un editor di testo in Linux. In questo caso, stiamo utilizzando l'editor `vim`.
vim until.sh>
Puoi sostituire fino a quando. sh con il nome desiderato.
Quindi rendiamo eseguibile il nostro script utilizzando il comando `chmod` in Linux.
chmod +x until.sh>
#/bin/bash
a=0
# -gt è maggiore dell'operatore
#Itera il ciclo finché a non è maggiore di 10fino al [$a -gt 10]
Fare# Stampa i valori
eco $a# incrementa il valore
a=`espressione $a + 1`
Fatto
Produzione:

Fino al ciclo in Linux
Spiegazione:
-
#/bin/bash>: specifica che lo script deve essere interpretato utilizzando la shell Bash. -
a=0>: Inizializza una variabilea>con il valore 0. -
until [ $a -gt 10 ]>: avvia un ciclo Until che continua finché dura il valorea>non è maggiore di 10. -
do>: Contrassegna l'inizio del corpo del loop. -
echo $a>: Stampa il valore corrente dia>la consolle. -
a=>espressione $a + 1 : Incrementa il valore dia>di 1. Ilexpr>Il comando viene utilizzato per le espressioni aritmetiche. -
done>: Contrassegna la fine del ciclo.
Nota: Lo scripting della shell è un linguaggio con distinzione tra maiuscole e minuscole, il che significa che è necessario seguire la sintassi corretta durante la scrittura degli script.
Esempi di istruzioni in loop
1. Iterazione sui colori utilizzando un ciclo For
Per prima cosa creiamo un file utilizzando un editor di testo in Linux. In questo caso, stiamo utilizzando l'editor `vim`.
vim color.sh>
Puoi sostituire color.sh con il nome desiderato.
Quindi rendiamo eseguibile il nostro script utilizzando il comando `chmod` in Linux.
chmod +x color.sh>
#/bin/bash
COLORI=rosso verde blu
# il ciclo for continua finché non legge tutti i valori da COLORS
per COLORE in $COLORI
Fare
eco COLORE: $COLORE
Fatto
Produzione:

Per fino a quando in Linux
Spiegazione:
- Inizializzazione dei colori:
COLORS='red green blue'>: Inizializza una variabile denominataCOLORS>con un elenco di valori di colore separati da spazi (rosso, verde e blu).
- Per l'iterazione del ciclo:
for COLOR in $COLORS>: avvia un ciclo for che ripete ogni valore nel fileCOLORS>variabile.- Corpo del circuito:
echo 'COLOR: $COLOR'>: stampa un messaggio per ciascun colore, visualizzando il valore del colore corrente.
- Corpo del circuito:
- Il ciclo continua finché non elabora tutti i valori presenti nel file
COLORS>variabile.
Questo esempio dimostra un semplice ciclo for in Bash, che esegue un'iterazione su un elenco di colori memorizzati nel fileCOLORS>variabile. Il ciclo stampa un messaggio per ciascun colore, indicando il colore attualmente in fase di elaborazione. Il ciclo viene ripetuto finché tutti i valori di colore non vengono esauriti.
2. Creare un ciclo infinito con while true nello script della shell
Per prima cosa creiamo un file utilizzando un editor di testo in Linux. In questo caso stiamo utilizzando l'editor `vim`.
vim infinite.sh>
Puoi sostituire infinite.sh con il nome desiderato.
Quindi rendiamo eseguibile il nostro script utilizzando il comando `chmod` in Linux.
chmod +x infinite.sh>
#/bin/bash
mentre è vero
Fare# Comando da eseguire
# sleep 1 indica che dorme per 1 secondo
echo Ciao, sono un loop infinito
dormire 1
Fatto
Produzione:

ciclo infinito su Linux
Spiegazione:
Struttura ad anello infinito:
while true>: avvia un ciclo while che continua indefinitamente come condizionetrue>è sempre vero.- Corpo del circuito:
echo 'Hi, I am infinity loop'>: stampa un messaggio che indica che lo script è in un ciclo infinito.sleep 1>: mette in pausa l'esecuzione del loop per 1 secondo prima dell'iterazione successiva.
- Corpo del circuito:
- Il ciclo continua indefinitamente, eseguendo ripetutamente i comandi all'interno del suo corpo.
Questo esempio mostra la creazione di un ciclo infinito utilizzando il costrutto while true in Bash. Il ciclo stampa continuamente un messaggio che indica il suo stato come ciclo infinito e include un comando sleep 1, causando un ritardo di un secondo tra le iterazioni. I cicli infiniti vengono spesso utilizzati per processi che devono essere eseguiti ininterrottamente finché non vengono interrotti manualmente.
3. Ciclo interattivo di conferma del nome
Per prima cosa creiamo un file utilizzando un editor di testo in Linux. In questo caso stiamo utilizzando l'editor `vim`.
vim name.sh>
Puoi sostituire name.sh con il nome desiderato.
Quindi rendiamo eseguibile il nostro script utilizzando il comando `chmod` in Linux.
chmod +x name.sh>
#/bin/bash
CORRETTO=n
mentre [ $CORRETTO == n ]
Fare# il ciclo si interrompe quando inserisci y, ovvero quando il tuo nome è corretto
# -p sta per richiesta immediata dell'inputleggi -p Inserisci il tuo nome: NOME
leggi -p ${NOME} è corretto? CORRETTO
Fatto
Produzione:

Script interattivo in Linux
Spiegazione:
- Inizializzazione:
CORRECT=n>: Inizializza una variabile denominataCORRECT>con il valore n. Questa variabile viene utilizzata per controllare il ciclo.
- Ciclo interattivo:
while [ '$CORRECT' == 'n' ]>: avvia un ciclo while che continua finché il valore diCORRECT>è uguale a n.- Corpo del circuito:
read -p 'Enter your name:' NAME>: richiede all'utente di inserire il proprio nome e memorizza l'input nel fileNAME>variabile.read -p 'Is ${NAME} correct? ' CORRECT>: Chiede all'utente di confermare se il nome inserito è corretto e aggiorna ilCORRECT>variabile di conseguenza.
- Corpo del circuito:
- Il ciclo continua finché l'utente non immette y (indicando il nome corretto).
Questo esempio mostra un ciclo interattivo che richiede all'utente di inserire il proprio nome e quindi chiede conferma. Il ciclo continua finché l'utente non conferma che il nome inserito è corretto inserendo y. Il ciclo utilizza il ` read> `>comando per l'input dell'utente e aggiorna il file ` CORRECT> `>variabile per controllare il flusso del circuito.
Conclusione
In questo articolo abbiamo discusso le istruzioni in loop nello scripting Bash, coprendowhile>,for>, Euntil>loop. Introduce l'uso dibreak>Econtinue>istruzioni per modificare il comportamento del ciclo. Esempi pratici illustrano l'implementazione dei cicli, inclusa l'iterazione sui valori dei colori, la creazione di cicli infiniti e la creazione di un ciclo interattivo per la convalida dell'input dell'utente. La guida offre una risorsa concisa ma informativa per comprendere e utilizzare i costrutti di loop negli script Bash.