Crea un file bash chiamato ' for_list1.sh ' e aggiungi il seguente script. Un valore stringa con spazi viene utilizzato all'interno del ciclo for. Per impostazione predefinita, il valore della stringa è separato da uno spazio. For loop dividerà la stringa in parole e stamperà ogni parola aggiungendo una nuova riga.
#!/bin/bash
# Legge una stringa con spazi usando il ciclo for
pervaloreinmi piace programmare
fare
buttato fuori $valore
fatto
Produzione:
$bashfor_list1.sh
Esempio 2: iterazione di una variabile stringa utilizzando il ciclo for
Crea un file bash chiamato ' for_list2.sh ' e aggiungi il seguente script. Assegna un testo alla variabile, StringVal e leggi il valore di questa variabile usando il ciclo for. Questo esempio funzionerà anche come l'esempio precedente e dividerà il valore della variabile in parole in base allo spazio.
#!/bin/bash
# Definire una variabile stringa con un valore
StringVal='Benvenuto in linuxhint'
# Itera la variabile stringa usando il ciclo for
perorein $StringVal;fare
buttato fuori $ ore
fatto
Produzione:
$bashfor_list2.sh
Esempio 3: iterare un array di valori stringa
Crea un file bash chiamato ' for_list3.sh ' e aggiungi il seguente script. Un array di valori stringa è dichiarato con type in questo script. Due valori nell'array che contengono spazio sono Linux Mint e Red Hat Linux . Questo script genererà l'output suddividendo questi valori in più parole e stampandoli come valori separati. Ma questo non è l'output corretto. La soluzione di questo tipo di problema è mostrata nel prossimo esempio.
#!/bin/bash# Dichiara un array di stringhe con type
dichiarare -a StringArray=('Linux Mint' 'Fedora' 'Red Hat Linux' 'Ubuntu' 'Debian' )
# Itera l'array di stringhe usando il ciclo for
perorein ${StringArray[@]};fare
buttato fuori $ ore
fatto
Produzione:
$bashfor_list3.sh
Esempio-4: stampa più parole valore stringa come un singolo valore
Crea un file bash chiamato ' for_list4.sh ' e aggiungi il seguente script. In questo esempio, ogni elemento della variabile array, StringArray contiene valori di due parole. Per stampare ogni valore senza dividere e risolvere il problema dell'esempio precedente, devi solo racchiudere la variabile dell'array con doppia citazione all'interno del ciclo for.
#!/bin/bash# Dichiara un array di stringhe con type
dichiarare -a StringArray=('Windows XP' 'Windows 10' 'Windows ME' 'Windows 8.1'
'Windows Server 2016' )
# Leggi i valori dell'array con lo spazio
perorein '${StringArray[@]}';fare
buttato fuori $ ore
fatto
Produzione:
$bashfor_list4.sh
Esempio-5: iterazione di valori stringa di un array utilizzando '*'
Crea un file bash chiamato ' for_list5.sh ' con il seguente codice. Qui, il simbolo '*' viene utilizzato per leggere tutti i valori stringa dell'array. Il primo ciclo for viene utilizzato per visualizzare i valori dell'array in più righe e il secondo ciclo for viene utilizzato per visualizzare i valori dell'array in una singola riga.
#!/bin/bash#Dichiara un array di stringhe
LanguageArray=('PHP' 'Giava' 'C #' 'C++' 'VB.Net' 'Pitone' 'Perla')
# Stampa i valori dell'array in righe
buttato fuori 'Stampa ogni elemento in una nuova riga'
perval1in ${LanguageArray[*]};fare
buttato fuori $ val1
fatto
buttato fuori ''
# Stampa i valori dell'array in una riga
buttato fuori 'Stampa tutti gli elementi in un'unica riga'
perval2in '${LanguageArray[*]}';fare
buttato fuori $val2
fatto
buttato fuori ''
Produzione:
$bashfor_list5.sh
Esempio 6: iterazione di valori di stringhe separate da virgole
Crea un nuovo file bash chiamato ' for_list6.sh' con il seguente codice. Qui, comma (,) viene utilizzato per dividere i valori della stringa. IFS variabile viene utilizzata per impostare il separatore di campo.
#!/bin/bashElenco dati=' HTML5, CCS3, BootStrap, JQuery '
Field_Separator=$IFS
# imposta la virgola come separatore di campo interno per l'elenco di stringhe
IFS=,
perorein $DataList;
fare
buttato fuori $ ore
fatto
IFS=$Field_Separator
Produzione:
$bashfor_list6.sh
Esempio-7: lettura di più array di stringhe insieme
Crea un file bash chiamato ' for_list7.sh ' e aggiungi il seguente script. In questo esempio, vengono definiti due array di stringhe e combinati in un altro array. Il ciclo for esterno viene utilizzato per leggere l'array combinato e il ciclo for interno viene utilizzato per leggere ciascun array interno.
#! /bin/shstr_array1=('Magento 2.2.4' 'WooCommerce')
str_array2=('Codice Accenditore' 'Laravel')
combinare=(str_array1 str_array2)
pergestitoin ${combina[@]}
fare
valuta 'per val in '${'$ arrItem'[@]}';do echo '$val';fatto'
fatto
Produzione:
$bashfor_list7.sh
Esempio-8: utilizzo di pattern per leggere l'elenco di stringhe
Crea un nuovo file bash chiamato for_list8.sh con il seguente codice. Qui, '/, /' pattern viene utilizzato per dividere i valori della stringa in base alla virgola.
#! /bin/sh# Definisce un elenco di variabili stringa
stringList=WordPress,Joomla,Magento
# Usa la virgola come separatore e applica come modello
perorein ${elencostringhe//,/ }
fare
buttato fuori $ ore
fatto
Produzione:
$bashfor_list8.sh
Spero che gli esempi di questo tutorial ti aiuteranno a capire l'uso di per ciclo per l'iterazione dell'elenco delle stringhe, per un video su questo argomento, vedere di seguito: