Cree un archivo bash llamado 'for_list1.sh 'y agregue el siguiente script. Se utiliza un valor de cadena con espacios dentro de lo bucle. Por defecto, el valor de la cadena está separado por el espacio. Para bucle dividirá la cadena en palabras e imprimirá cada palabra agregando una nueva línea.
#!/bin/bash
# Lea una cadena con espacios usando para bucle
Para el valor en la programación me gusta
hacer
Echo $ valor
hecho
Producción:
$ bash for_list1.mierda
Ejemplo-2: iterando una variable de cadena usando para bucle
Cree un archivo bash llamado 'for_list2.sh 'y agregue el siguiente script. Asignar un texto a la variable, Stringval y lea el valor de esta variable usando para bucle. Este ejemplo también funcionará como el ejemplo anterior y dividirá el valor de la variable en palabras basadas en el espacio.
#!/bin/bash
# Defina una variable de cadena con un valor
StringVal = "Bienvenido a Linuxhint"
# Itera la variable de cadena usando para bucle
para val en $ stringval; hacer
echo $ val
hecho
Producción:
$ bash for_list2.mierda
Ejemplo-3: iterar una matriz de valores de cadena
Cree un archivo bash llamado 'for_list3.sh 'y agregue el siguiente script. Se declara una matriz de valores de cadena con el tipo en este script. Dos valores en la matriz que contienen espacio son 'Menta Linux' y 'Red Hat Linux'. Este script generará la salida dividiendo estos valores en múltiples palabras e impresión como un valor separado. Pero esta no es la salida adecuada. La solución de este tipo de problema se muestra en el siguiente ejemplo.
#!/bin/bash
# Declarar una variedad de cadenas con tipo
declarar -a stringArray = ("Linux Mint" "Fedora"
"Red Hat Linux" "Ubuntu" "Debian")
# Itera la matriz de cadenas usando para bucle
para val en $ StringArray [@]; hacer
echo $ val
hecho
Producción:
$ bash for_list3.mierda
Ejemplo-4: Imprima el valor de cadena de múltiples palabras como un solo valor
Cree un archivo bash llamado 'for_list4.sh 'y agregue el siguiente script. En este ejemplo, cada elemento de la variable de matriz, Stringarray contiene valores de dos palabras. Para imprimir cada valor sin dividir y resolver el problema del ejemplo anterior, solo necesita encerrar la variable de matriz con cita doble dentro de la bucle.
#!/bin/bash
# Declarar una matriz de cadenas con el tipo
declarar -a stringArray = ("Windows XP" "Windows 10"
"Windows Me" "Windows 8.1 "" Windows Server 2016 ")
# Lea los valores de la matriz con espacio
para val en "$ StringArray [@]"; hacer
echo $ val
hecho
Producción:
$ bash for_list4.mierda
Ejemplo-5: iterando los valores de cadena de una matriz usando '*'
Cree un archivo bash llamado 'for_list5.sh 'con el siguiente código. Aquí, el símbolo '*' se usa para leer todos los valores de cadena de la matriz. El primero para el bucle se usa para mostrar valores de matriz en múltiples líneas y el segundo para el bucle se usa para mostrar los valores de la matriz en una sola línea.
#!/bin/bash
#Declare una matriz de cadenas
Languagearray = ("php" "java" "c#" "c ++" "VB.Net "" Python "" Perl ")
# Imprimir valores de matriz en líneas
Echo "Imprima todos los elementos en nueva línea"
para val1 en $ languageArray [*]; hacer
Echo $ val1
hecho
eco ""
# Imprimir valores de matriz en una línea
Echo "Imprima todos los elementos en una sola línea"
para val2 en "$ languageArray [*]"; hacer
echo $ val2
hecho
Producción:
$ bash for_list5.mierda
Ejemplo-6: iterando valores de cadena separados por coma
Cree un nuevo archivo bash llamado 'for_list6.sh 'con el siguiente código. Aquí, coma (,) se usa para dividir los valores de cadena. IFS La variable se usa para establecer el separador de campo.
#!/bin/bash
DataList = "HTML5, CCS3, Bootstrap, jQuery"
Field_separator = $ ifs
# Establecer la coma como separador de campo interno para la lista de cadenas
Ifs =,
para Val en $ Datalist;
hacer
echo $ val
hecho
Ifs = $ field_separator
Producción:
$ bash for_list6.mierda
Ejemplo-7: leer múltiples matrices de cadena juntas
Cree un archivo bash llamado 'for_list7.sh 'y agregue el siguiente script. En este ejemplo, dos matrices de cadenas se definen y se combinan en otra matriz. El exterior para el bucle se usa para leer la matriz combinada y el bucle interno para leer cada matriz interna.
#! /bin/bash
str_array1 = ("Magento 2.2.4 "" WooCommerce ")
str_array2 = ("Codeignitor" "Laravel")
Combine = (str_array1 str_array2)
Para Arritem en $ Combine [@]
hacer
eval 'para val en "$ ' $ arritem '[@]"; do echo "$ val"; hecho'
hecho
Producción:
$ bash for_list7.mierda
Ejemplo-8: Uso del patrón para leer la lista de cuerdas
Crear un nuevo archivo bash llamado for_list8.mierda Con el siguiente código. Aquí, ' /, /' El patrón se usa para dividir los valores de cadena basados en la coma.
#!/bin/bash
# Definir una lista de variables de cadena
StringList = WordPress, Joomla, Magento
# Use la coma como separador y aplique como patrón
para val en $ StringList //,/
hacer
echo $ val
hecho
Producción:
$ bash for_list8.mierda
Espero que los ejemplos de este tutorial lo ayuden a comprender el uso de en bucle Para iterar la lista de cuerdas, para un video sobre este tema, consulte a continuación: