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 / bashLlista 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 / shstr_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ó: