Bash Loop mitjançant una llista de cordes

Bash Loop Through List Strings



Es pot iterar una llista de cadenes o matriu o seqüència d’elements per bucle a bash. Com es pot iterar la llista de cadenes de Bash by for loop es mostra en aquest tutorial mitjançant diversos exemples de script bash. Si sou novells, feu programacions bash, podeu llegir el tutorial a BASH Per a exemples de bucles abans d’iniciar aquest tutorial.

Creeu un fitxer bash anomenat ' for_list1.sh ’I afegiu el següent script. S'utilitza un valor de cadena amb espais dins de bucle. Per defecte, el valor de la cadena està separat per espai. For loop dividirà la cadena en paraules i imprimirà cada paraula afegint una línia nova.







#! / bin / bash
# Llegiu una cadena amb espais amb el bucle for
pervalordinsM’agrada programar
fer
trobo valor $
fet

Sortida:



$bashfor_list1.sh



Exemple-2: iteració d'una variable de cadena mitjançant el bucle for

Creeu un fitxer bash anomenat ' for_list2.sh ’I afegiu el següent script. Assigneu un text a la variable, StringVal i llegeix el valor d'aquesta variable utilitzant el bucle for. Aquest exemple també funcionarà com l'exemple anterior i dividirà el valor de la variable en paraules segons l'espai.





#! / bin / bash
# Definiu una variable de cadena amb un valor
StringVal='Benvingut a linuxhint'

# Iterar la variable de cadena mitjançant el bucle for
perhoresdins $ StringVal;fer
trobo $ hores
fet

Sortida:

$bashfor_list2.sh



Exemple-3: Iterar una matriu de valors de cadena

Creeu un fitxer bash anomenat ' for_list3.sh ’I afegiu el següent script. Es declara una matriu de valors de cadena amb tipus en aquest script. Hi ha dos valors de la matriu que contenen espai Linux Mint i Red Hat Linux . Aquest script generarà la sortida dividint aquests valors en diverses paraules i imprimint com a valor separat. Però aquesta no és la sortida adequada. La solució d’aquest tipus de problemes es mostra al següent exemple.

#! / bin / bash

# Declareu una matriu de cadena amb el tipus
declari -a StringArray=('Linux Mint' 'Fedora' 'Red Hat Linux' 'Ubuntu' 'Debian' )

# Iterar la matriu de cadenes utilitzant el bucle for
perhoresdins $ {StringArray [@]};fer
trobo $ hores
fet

Sortida:

$bashfor_list3.sh

Exemple-4: imprimiu el valor de la cadena de diverses paraules com a valor únic

Creeu un fitxer bash anomenat ' for_list4.sh ’I afegiu el següent script. En aquest exemple, tots els elements de la variable de matriu, StringArray conté valors de dues paraules. Per imprimir cada valor sense dividir-lo i resoldre el problema de l'exemple anterior, només heu d'incloure la variable de matriu amb doble cotització dins de bucle.

#! / bin / bash

# Declareu una matriu de cadenes amb el tipus
declari -a StringArray=('Windows XP' 'Windows 10' 'Windows ME' 'Windows 8.1'
'Windows Server 2016' )

# Llegiu els valors de la matriu amb espai
perhoresdins '$ {StringArray [@]}';fer
trobo $ hores
fet

Sortida:

$bashfor_list4.sh

Exemple-5: Iteració de valors de cadena d'una matriu mitjançant '*'

Creeu un fitxer bash anomenat ' for_list5.sh ’Amb el codi següent. Aquí, el símbol ‘*’ s’utilitza per llegir tots els valors de cadena de la matriu. El primer bucle per a s'utilitza per mostrar valors de matriu en diverses línies i el segon per a bucle s'utilitza per mostrar valors de matriu en una sola línia.

#! / bin / bash

# Declareu una matriu de cadenes
LanguageArray=('PHP' 'Java' 'C #' 'C ++' 'VB.Net' 'Python' 'Perl')

# Imprimiu els valors de la matriu en línies
trobo 'Imprimeix tots els elements de la nova línia'
perval1dins $ {LanguageArray [*]};fer
trobo $ val1
fet

trobo ''

# Imprimiu els valors de la matriu en una línia
trobo 'Imprimeix tots els elements en una sola línia'
perval2dins '$ {LanguageArray [*]}';fer
trobo $ val2
fet
trobo ''

Sortida:

$bashfor_list5.sh

Exemple-6: iteració de valors de cadenes separats per comes

Creeu un fitxer bash nou anomenat ' for_list6.sh ' amb el següent codi. Aquí, coma (,) s'utilitza per dividir els valors de la cadena. IFS La variable s'utilitza per configurar el separador de camps.

#! / bin / bash
Llista de dades='HTML5, CCS3, BootStrap, JQuery'
Separador_camp=$ IFS

# defineix la coma com a separador de camps intern per a la llista de cadenes
IFS=,
perhoresdins $ DataList;
fer
trobo $ hores
fet

IFS=$ Field_Separator

Sortida:

$bashfor_list6.sh

Exemple-7: lectura de matrius de cadenes múltiples

Creeu un fitxer bash anomenat ' for_list7.sh ’I afegiu el següent script. En aquest exemple, es defineixen dues matrius de cadenes i es combinen en una altra matriu. El bucle exterior s’utilitza per llegir la matriu combinada i el bucle interior per llegir cada matriu interior.

#! / bin / sh
str_array1=('Magento 2.2.4' 'WooCommerce')
str_array2=('CodeIgnitor' 'Laravel')
combinar=(str_array1 str_array2)
pergestionatdins $ {combine [@]}
fer
eval 'per val a' $ {'$ arrItem'[@]}'; feu ressò de '$ val'; fet '
fet

Sortida:

$bashfor_list7.sh

Exemple-8: utilitzar patró per llegir la llista de cadenes

Creeu un fitxer bash nou anomenat for_list8.sh amb el següent codi. Aquí, '/, /' El patró s'utilitza per dividir els valors de la cadena basats en comes.

#! / bin / sh

# Definiu una llista de variables de cadena
Llista de cadenes= WordPress, Joomla, Magento

# Utilitzeu la coma com a separador i apliqueu-lo com a patró
perhoresdins $ {stringList //, /}
fer
trobo $ hores
fet

Sortida:

$bashfor_list8.sh

Esperem que els exemples d’aquest tutorial us ajudin a entendre l’ús de per a bucle per a iterar la llista de cadenes, veure un vídeo sobre aquest tema, vegeu a continuació: