Sintassi:
per loop può essere utilizzato da due modi in bash. Un modo è "for-in" e un altro modo è la sintassi in stile c. Entrambi i sintassi sono mostrati di seguito.
per variabile nell'elenco
Fare
Dichiarazioni
Fatto
O
per ((espressione1; espressione2; espressione3))
Fare
Dichiarazioni
Fatto
Esempio-1: per loop per leggere la variabile di input
L'elenco di stringhe o array predefinite può essere letta facilmente usando "per" loop che è mostrato nel precedente tutorial di per loop. In questo esempio il contenuto di una variabile di input può essere letto utilizzando "per". Crea un file denominato 'forloop1.sh'Con il seguente script. Verrà preso un valore di input di un testo di più parole dopo aver eseguito lo script. Qui, per il ciclo viene utilizzato per dividere il testo in parole in base allo spazio bianco e stampare ogni parola con la posizione.
forloop1.sh
#!/Bin/Bash
Echo "Immettere un testo di più parole"
Leggi il testo
i = 1
Per Word in $ text
Fare
Echo "Word No- $ i = $ word"
((i = $ i+1))
Fatto
Produzione:
Esegui lo script.
$ Bash Forloop1.sh
Qui viene preso un testo di 5 parole, quindi vengono stampate cinque righe di uscita.
Esempio-2: per loop con una dichiarazione di pausa
L'istruzione "Break" viene utilizzata all'interno "per il ciclo per terminare dal loop. Crea un file denominato 'forloop2.sh' con il seguente codice. "Per" loop è usato qui per leggere un elenco di quattro persone. Qui vengono testate due condizioni. Se il nome della persona è 'Amir ' E il colore è 'Blu' Quindi il ciclo terminerà dopo aver stampato il nome e il colore della persona. I valori di colore del secondo per loop verranno stampati fino a quando il valore del colore, "blu" viene abbinato.
forloop2.sh
Per il nome in Watson Micheal Sinha Amir Lily
Fare
if [$ name == 'Amir']
Poi
Per il colore in bianco blu verde rosso
Fare
if [$ color == "blu"]
Poi
echo "Il colore preferito di $ name è $ color"
rottura
altro
Echo "Il colore attuale è $ Color"
fi
Fatto
fi
Fatto
Produzione:
Esegui lo script.
$ Bash Forloop2.sh
Il seguente output apparirà dopo aver eseguito lo script. Innanzitutto, sono stampati due colori, "rosso" e "verde". Quando è apparso il valore "blu", ha stampato il nome e il valore del colore della persona e terminato dal ciclo per l'istruzione "Break".
Esempio-3: per loop con la dichiarazione Continua
L'istruzione "Continua" viene utilizzata all'interno del ciclo "per" per saltare qualsiasi affermazione in base a una particolare condizione. Crea un file denominato 'Forloop3.sh' Con il seguente script. Qui, una variabile denominata $ corsi viene utilizzato per assegnare un valore di testo. "Per" loop viene utilizzato per leggere i corsi variabili, $. Il valore di testo verrà diviso in base allo spazio e letto dal loop "per". Quando il valore, "Oracle" è abbinato a $ Course Quindi stamperà "Oracle non è disponibile ora". Per altri valori, "la classe di $ è in corso". Il corso che non è disponibile non eseguirà l'ultima dichiarazione del ciclo "per" per la dichiarazione Continua.
forloop3.sh
#!/bin/sh
Courses = "Java PHP Oracle VB.netto"
per corso in $ corsi
Fare
if [$ Course == 'Oracle']
Poi
Echo "$ corsi non è disponibile ora"
Continua
fi
Echo "La classe di $ è in corso"
Fatto
Produzione:
Esegui lo script.
$ Bash Forloop3.sh
Il seguente output apparirà dopo aver eseguito lo script.
Esempio-4: utilizzando l'output del comando come elenco
Qualsiasi output di comandi bash può essere utilizzato nel ciclo "per" utilizzando Backtick ("). Crea un file denominato 'Forloop4.sh' Con il seguente script. Qui, 'ls *.TXT' Il comando viene utilizzato nel ciclo. Questo comando genererà un elenco del file di testo dalla directory corrente. "Per" loop iterirà ogni nome file dall'output del comando e lo memorizzerà nella variabile $ nome file che stamperà più tardi. Qui, $ n La variabile viene utilizzata per visualizzare il numero del file.
forloop4.sh
n = 1
per il nome file in 'ls *.TXT'
Fare
echo "file no- $ n: $ nome file"
((N ++))
Fatto
Produzione:
Esegui lo script.
$ Bash Forloop1.sh
Il seguente output apparirà dopo aver eseguito lo script.
Esempio-5: per il ciclo per leggere un intervallo
"Per" loop può essere utilizzato per la gamma di dati di lettura. L'esempio seguente leggi una gamma di carattere e cerca ogni carattere esiste nel testo o no. Crea un file denominato 'Forloop5.sh' e aggiungi il seguente script. Qui, l'intervallo, [a-z] è usato in "per". Ciò significa che "per" loop iterirà per 26 volte per ogni lettera di capitale. Ogni personaggio viene cercato in $ text usando il comando 'awk'. Se un personaggio trovato, memorizzerà il valore in $. Prossimo. Il risultato $ è verificato per qualsiasi contenuto. Se non è vuoto, un messaggio verrà stampato.
forloop5.sh
text = "Bash Scripting Language"
per c in a ... z
Fare
risultato = 'printf "$ text" | awk "/$ c/" '
Se [[$ risultato != ""]]
Poi
echo "$ c esiste nel testo"
fi
Fatto
Esegui lo script.
$ Bash Forloop5.sh
Qui, gli alfabeti, "B", "L" e "S" trovati nel testo, "Bash Scripting Language". Quindi, vengono stampate tre righe di output.
Esempio-6: per il ciclo per leggere un intervallo con l'incremento
L'esempio mostra come è possibile utilizzare "per" loop per scoprire tutti i numeri pari in un intervallo particolare. Crea un file denominato 'Forloop6.sh' e aggiungi il seguente script. Qui, un intervallo di [2-20] viene utilizzato nel loop in cui ogni passaggio è incrementato di 2. Il ciclo itederà per 10 volte e stamperà il numero in ogni passaggio.
Forloop6.sh
Echo "Stampare tutti i numeri pari da 1 a 20"
per n in 2… 20… 2
Fare
echo -n "$ n"
Fatto
printf "\ ndone \ n"
Esegui lo script.
$ Bash Forloop6.sh
Tutti i numeri pari entro 2-20 sono stampati dopo aver eseguito lo script.
Esempio-7: per il giro di funzionare con il file
Questo esempio mostra come è possibile "per" loop per leggere un elenco di file specifici. Crea un file denominato, 'Forloop7.sh' e aggiungi il seguente script. Qui, il ciclo viene utilizzato nell'elenco di tutti i file di testo dalla directory corrente e sostituire l'estensione del file da ".txt 'to'.Doc '.
Forloop7.sh
Echo "Sostituzione dell'estensione del file di tutto il file di testo al file DOC."
per il nome file in *.TXT; Fare
MV "$ fileName" "$ fileName%.TXT.Doc "
Fatto
Echo "La sostituzione è eseguita con successo"
Produzione:
Crea prima un file di testo se non esiste alcun file di testo nella directory corrente. Qui, un file di testo chiamato 'newfile.txt 'viene creato usando il comando' cat '.
$ cat> newfile.TXT
Esegui lo script menzionato sopra.
$ Bash Forloop7.sh
Successivamente, controllare che l'estensione viene modificata o meno utilizzando il comando "LS".
Esempio-8: per loop con comando di sequenza
Il seguente esempio mostra come puoi usare 'seq"In" per "loop per stampare un elenco di numero sequenziale. Il comando 'seq' funziona allo stesso modo come l'intervallo con incremento. Crea un file denominato 'Forloop8.sh' e aggiungi il seguente script. Il ciclo stamperà i numeri tra 1 e 30 omettendo tre numeri ogni passaggio.
forloop8.sh
Echo "Numeri di stampa saltando 3"
per Sq in $ (seq 1 3 30)
Fare
Echo "Numero di sequenza: $ sq"
Fatto
Produzione:
Esegui lo script.
$ Bash Forloop8.sh
Il seguente output apparirà dopo aver eseguito lo script.
Esempio-9: usando Infinite for Loop
Il ciclo infinito può essere usato per svolgere più volte compiti ripetitivi fino a quando non appare una condizione specifica. Crea un file denominato 'Forloop9.sh' con il seguente script per verificare l'uso del loop infinito. Qui, nessuna condizione di terminazione è definita nel ciclo. Il loop visualizza il menu di 5 elenchi fino a quando non viene premuto il numero 5. Stamperà un messaggio particolare per altri numeri da 1 a 4 e visualizzerà nuovamente il menu.
forloop9.sh
per (( ; ; ))
Fare
Echo "1. Stampa Messaggio di successo "
Echo "2. Stampa Messaggio di informazioni "
Echo "3. Stampa Messaggio di avviso "
Echo "4. Stampa Messaggio di errore "
Echo "5. Uscita"
echo -n "Seleziona qualsiasi numero da [1-5]:"
Leggi la risposta
Caso "$ risposta" in
1) Echo "completato con successo.";;
2) eco "input non valido" ;;
3) Echo "Il tuo computer ha una batteria bassa" ;;
4) Echo "Il numero sbagliato di argomenti viene inviato" ;;
5) uscita 0 ;;
*) echo "selezione sbagliata" ;;
Esac
Fatto
Esegui lo script.
$ Bash Forloop9.sh
Qui, 9 viene premuto la prima volta che non esiste nell'elenco. Per questo input, è stampato "Selezione errata" e visualizzare di nuovo il menu. Successivamente, 1 viene premuto e ha visualizzato un messaggio, "completato correttamente". Successivamente, 5 viene premuto per terminare dal programma.
Esempio-10: usando per loop senza l'elenco.
"Per" loop può essere utilizzato senza alcun elenco o array o output di comandi. Come puoi usare "per" loop per leggere gli argomenti della riga di comando è mostrato in questo esempio. Crea un file denominato, 'Forloop10.sh' e aggiungi il seguente script. Il ciclo iterirà in base al numero di argomenti della riga di comando. La variabile di $ Counter viene utilizzata per trovare ogni fase del ciclo incrementato di 1 in ogni passaggio.
Forloop10.sh
contatore = 1
per il testo
Fare
Se [$ Counter -eq 2]
Poi
str = "Il mio colore preferito è"
Elif [$ Counter -eq 3]
Poi
str = "amo"
altro
str = "mi piace"
fi
echo "$ str $ testo"
((Counter = $ Counter+1))
Fatto
Esegui i valori dell'argomento della riga di comando.
$ Bash Forloop10.programmazione blu del gelato SH
Lo script ha stampato il messaggio "Mi piace il gelato" quando il contatore $ è 1, "Il mio colore preferito è blu" quando il contatore $ è 2 e "I love programmazione" quando il contatore $ è 3.
Esempio-11: lettura di file e directory utilizzando per loop
"Per" loop può essere utilizzato per stampare l'elenco di file e cartelle della directory corrente. Crea un file denominato 'Forloop11.sh'E aggiungi il seguente script. Qui, il simbolo '*' viene utilizzato nel ciclo 'per' per leggere i file e le cartelle della directory corrente. Il loop leggi ogni file o la cartella in ogni passaggio e stampalo nel terminale con uno spazio "scheda".
Forloop11.sh
printf "Puntura dei file e delle cartelle della directory corrente ... \ n \ n"
per elenco in *
Fare
printf "$ list \ t"
Fatto
printf "\ n \ ndone \ n"
Esegui lo script.
$ Bash Forloop11.sh
I nomi di file e cartelle della directory di lavoro corrente vengono stampati dopo l'esecuzione dello script.
Esempio-12: Utilizzo di una virgola nello stile B Bash per loop
C-stile "per" Loop è anche supportato in bash e questo "per" ha tre espressioni. Si tratta di inizializzazione, condizione di terminazione e incremento o decremento. Ma usando la virgola (,), è possibile definire più variabili di inizializzazione in Bash che viene mostrato in questo esempio. Crea un file chiamato, "forloop12.sh' e aggiungi il seguente script. Il ciclo nidificato "per" è usato in questo script. Due variabili di inizializzazione, $ team, E $ Jersey sono dichiarati nel primo "per" loop. Il primo ciclo verrà terminato quando $ team Will più di 2. Non esiste una variabile di inizializzazione nell'interno "per" loop e il ciclo interno verrà terminato dove il $ Jersey è più di 3. $ Jersey è impostato su 1 dopo aver completato l'anello interno dell'iterazione. Quindi, il ciclo esterno ripeterà per 2 volte e il ciclo interno ripeterà per 3 volte.
forloop12.sh
per ((team = 1, Jersey = 1; team <= 2 ; team++))
Fare
per ((; maglia <= 3 ; jersey++))
Fare
Echo "Team No- $ Team, Jersey No- $ Jersey"
Fatto
Jersey = 1
Fatto
Esegui lo script.
$ Bash Forloop12.sh
Il seguente output apparirà dopo aver eseguito lo script.
Molti usi efficaci di "per" loop sono tentati di spiegare in questo tutorial. Dopo aver praticato gli esempi di cui sopra, spero che i lettori abbiano una chiara conoscenza di "per" loop e 0able per usare questo ciclo correttamente nella sceneggiatura bash.