Bash Loop attraverso un elenco di stringhe

Bash Loop attraverso un elenco di stringhe

Un elenco di stringhe o array o sequenza di elementi può essere iterato utilizzando per Loop in Bash. Come puoi iterare l'elenco delle stringhe in bash by per loop è mostrato in questo tutorial usando vari esempi di script bash. Se sei alle prime armi è una programmazione bash, puoi leggere il tutorial su Bash for Loop Esempi prima di iniziare questo tutorial.

Esempio-1: iterando una stringa di più parole all'interno per loop

Crea un file bash chiamato 'for_list1.sh 'e aggiungi il seguente script. Un valore di stringa con spazi viene utilizzato all'interno per loop. Per impostazione predefinita, il valore della stringa è separato dallo spazio. Per loop dividerà la stringa in parole e stampa ogni parola aggiungendo una nuova linea.

#!/Bin/Bash
# Leggi una stringa con spazi che utilizzano per loop
per valore nella programmazione mi piace
Fare
Echo $ Value
Fatto

Produzione:

$ bash for_list1.sh

Esempio-2: iterando una variabile stringa utilizzando per loop

Crea un file bash chiamato 'for_list2.sh 'e aggiungi il seguente script. Assegna un testo nella variabile, Stringval e leggi il valore di questa variabile utilizzando per loop. Questo esempio funzionerà anche come l'esempio precedente e dividerà il valore della variabile in parole in base allo spazio.

#!/Bin/Bash
# Definisci una variabile stringa con un valore
StringVal = "Welcome to LinuxHint"
# Itera la variabile stringa utilizzando per loop
per Val in $ Stringval; Fare
Echo $ Val
Fatto

Produzione:

$ Bash for_list2.sh

Esempio-3: itera un array di valori di stringa

Crea un file bash chiamato 'for_list3.sh 'e aggiungi il seguente script. Una matrice di valori stringa viene dichiarata con tipo in questo script. Due valori nell'array che contengono spazio sono 'Linux Mint' E 'Red Hat Linux'. Questo script genererà l'output dividendo questi valori in più parole e stampando come valore separato. Ma questo non è l'output corretto. La soluzione di questo tipo di problema è mostrata nel prossimo esempio.

#!/Bin/Bash
# Dichiarare una matrice di stringa con tipo
Dichiara -a StringArray = ("Linux Mint" "Fedora"
"Red Hat Linux" "Ubuntu" "Debian")
# Itera l'array di stringa utilizzando per loop
per val in $ StringArray [@]; Fare
Echo $ Val
Fatto

Produzione:

$ Bash for_list3.sh

Esempio-4: stampare più parole String Valore come un valore singolo

Crea un file bash chiamato 'for_list4.sh 'e aggiungi il seguente script. In questo esempio, ogni elemento della variabile dell'array, StringArray contiene valori di due parole. Per stampare ogni valore senza dividere e risolvere il problema dell'esempio precedente, è solo necessario racchiudere la variabile dell'array doppia citazione All'interno per loop.

#!/Bin/Bash
# Dichiarare un array di stringhe con tipo
Dichiara -a StringArray = ("Windows XP" "Windows 10"
"Windows Me" "Windows 8.1 "" Windows Server 2016 ")
# Leggi i valori dell'array con spazio
per val in "$ StringArray [@]"; Fare
Echo $ Val
Fatto

Produzione:

$ bash for_list4.sh

Esempio-5: Iterating String Values ​​di un array usando '*'

Crea un file bash chiamato 'for_list5.Sh 'con il seguente codice. Qui, il simbolo '*' viene utilizzato per leggere tutti i valori di stringa dell'array. Il primo loop viene utilizzato per visualizzare i valori dell'array in più righe e il secondo per loop viene utilizzato per visualizzare i valori dell'array in una singola riga.

#!/Bin/Bash
#Declare un array di stringhe
LinguaGearray = ("php" "java" "c#" "c ++" "VB.Netto "" python "" perl ")
# Stampa i valori dell'array in riga
Echo "Stampa ogni elemento in nuova riga"
per Val1 in $ LagingAgearray [*]; Fare
Echo $ Val1
Fatto
eco ""
# Stampa i valori dell'array in una riga
Echo "Stampa tutti gli elementi in una sola riga"
per Val2 in "$ Lagingagearray [*]"; Fare
Echo $ Val2
Fatto

Produzione:

$ Bash for_list5.sh

Esempio-6: valori di stringa separati da virgola Iterating

Crea un nuovo file bash denominato 'for_list6.Sh 'con il seguente codice. Qui, virgola (,) viene utilizzato per dividere i valori della stringa. Ifs La variabile viene utilizzata per impostare il separatore di campo.

#!/Bin/Bash
DataList = "html5, ccs3, bootstrap, jQuery"
Field_separator = $ ifs
# Imposta la virgola come separatore di campo interno per l'elenco delle stringhe
Ifs =,
per Val in $ Datalist;
Fare
Echo $ Val
Fatto
Ifs = $ field_separator

Produzione:

$ bash for_list6.sh

Esempio-7: leggere insieme più array di stringhe

Crea un file bash chiamato 'for_list7.sh 'e aggiungi il seguente script. In questo esempio, due array di stringhe sono definiti e combinati in un altro array. Il loop esterno viene utilizzato per leggere l'array combinato e il ciclo interno viene utilizzato per leggere ciascun array interno.

#! /Bin/Bash
str_array1 = ("Magento 2.2.4 "" WooCommerce ")
str_array2 = ("codeignitor" "laravel")
COMBINE = (str_array1 str_array2)
Per Artem in $ Combine [@]
Fare
Eval 'per val in "$ ' $ artem '[@]"; do echo "$ val"; fatto'
Fatto

Produzione:

$ Bash for_list7.sh

Esempio-8: usando il pattern per leggere l'elenco delle stringhe

Crea un nuovo file bash denominato for_list8.sh con il seguente codice. Qui, ' /, /' Il modello viene utilizzato per dividere i valori della stringa in base alla virgola.

#!/Bin/Bash
# Definisci un elenco di variabile stringa
StringList = WordPress, Joomla, Magento
# Usa la virgola come separatore e applica come modello
per val in $ StringList //,/
Fare
Echo $ Val
Fatto

Produzione:

$ bash for_list8.sh

Spero, gli esempi di questo tutorial ti aiuteranno a capire l'uso di per loop Per iterare l'elenco delle stringhe, per un video su questo argomento, vedi sotto: