Bash Loop attraverso un elenco di stringhe

Bash Loop Through List Strings



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

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/bash
Elenco 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/sh
str_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: