Crie um arquivo bash chamado 'for_list1.sh 'e adicione o seguinte script. Um valor de string com espaços é usado para o loop. Por padrão, o valor da string é separado pelo espaço. Para o loop dividirá a string em palavras e imprimir cada palavra adicionando uma nova linha.
#!/BIN/BASH
# Leia uma string com espaços usando o loop
Para valor em eu gosto de programar
fazer
eco $ valor
feito
Saída:
$ bash for_list1.sh
Exemplo 2: iterando uma variável de string usando o loop
Crie um arquivo bash chamado 'for_list2.sh 'e adicione o seguinte script. Atribua um texto à variável, StringVal e leia o valor dessa variável usando o loop. Este exemplo também funcionará como o exemplo anterior e dividirá o valor da variável em palavras com base no espaço.
#!/BIN/BASH
# Defina uma variável de string com um valor
StringVal = "Bem -vindo ao Linuxhint"
# Itera a variável da string usando o loop
para val em $ stringval; fazer
eco $ val
feito
Saída:
$ bash for_list2.sh
Exemplo-3: Itreate uma matriz de valores de string
Crie um arquivo bash chamado 'for_list3.sh 'e adicione o seguinte script. Uma matriz de valores de string é declarada com tipo neste script. Dois valores na matriz que contêm espaço são 'Linux Mint' e 'Red Hat Linux'. Este script gerará a saída dividindo esses valores em várias palavras e imprimindo como valor separado. Mas esta não é a saída adequada. A solução desse tipo de problema é mostrada no próximo exemplo.
#!/BIN/BASH
# Declare uma matriz de string com tipo
Declare -Um StringArray = ("Linux Mint" "Fedora"
"Red Hat Linux" "Ubuntu" "Debian")
# Itera a matriz de strings usando o loop
para val em $ stringArray [@]; fazer
eco $ val
feito
Saída:
$ Bash for_list3.sh
Exemplo 4: Imprima várias palavras, valor de string como um único valor
Crie um arquivo bash chamado 'for_list4.sh 'e adicione o seguinte script. Neste exemplo, todos os elementos da variável de matriz, StringArray contém valores de duas palavras. Para imprimir cada valor sem dividir e resolver o problema do exemplo anterior, você só precisa incluir a variável da matriz com citação dupla dentro de loop.
#!/BIN/BASH
# Declare uma matriz de string com tipo
Declare -a stringArray = ("Windows XP" "Windows 10"
"Windows Me" "Windows 8.1 "" Windows Server 2016 ")
# Leia os valores da matriz com espaço
para val em "$ stringArray [@]"; fazer
eco $ val
feito
Saída:
$ bash para_list4.sh
Exemplo 5: iterando valores de string de uma matriz usando '*'
Crie um arquivo bash chamado 'for_list5.sh 'com o seguinte código. Aqui, o símbolo '*' é usado para ler todos os valores da string da matriz. O primeiro para loop é usado para exibir valores de matriz em várias linhas e o segundo para loop é usado para exibir valores de matriz em uma única linha.
#!/BIN/BASH
#Declare uma matriz de string
LinguageArray = ("php" "java" "c#" "c ++" "vb.Net "" python "" perl ")
# Valores da matriz de impressão nas linhas
eco "Imprima todos os elementos em nova linha"
Para Val1 em $ LinguageArray [*]; fazer
eco $ val1
feito
eco ""
# Valores da matriz de impressão em uma linha
eco "Imprima todos os elementos em uma única linha"
para Val2 em "$ LinguageArray [*]"; fazer
eco $ val2
feito
Saída:
$ bash for_list5.sh
Exemplo-6: Valores da string separados por vírgula iterando
Crie um novo arquivo Bash chamado 'for_list6.sh 'com o seguinte código. Aqui, vírgula (,) é usado para dividir os valores da string. Ifs A variável é usada para definir o separador de campo.
#!/BIN/BASH
Datalist = "html5, ccs3, bootstrap, jQuery"
Field_separator = $ ifs
# Defina a vírgula como separador de campo interno para a lista de strings
Ifs =,
para Val em $ Datalist;
fazer
eco $ val
feito
Ifs = $ field_separator
Saída:
$ bash for_list6.sh
Exemplo 7: Lendo várias matrizes de string juntas
Crie um arquivo bash chamado 'for_list7.sh 'e adicione o seguinte script. Neste exemplo, duas matrizes de string são definidas e combinadas em outra matriz. O loop externo é usado para ler a matriz combinada e o interior para loop é usado para ler cada matriz interna.
#! /BIN/BASH
str_array1 = ("Magento 2.2.4 "" WooCommerce ")
str_array2 = ("codeignitor" "Laravel")
Combine = (str_array1 str_array2)
Para o Arritem em $ Combine [@]
fazer
avaliar 'para val em "$ ' $ arrritem '[@]"; do echo "$ val"; feito'
feito
Saída:
$ bash for_list7.sh
Exemplo 8: Usando o padrão para ler a lista de strings
Crie um novo arquivo Bash nomeado for_list8.sh Com o seguinte código. Aqui, ' /, /' O padrão é usado para dividir os valores de string com base em vírgula.
#!/BIN/BASH
# Defina uma lista de variável de string
stringList = wordpress, joomla, magento
# Use vírgula como separador e aplique como padrão
para val em $ stringList //,/
fazer
eco $ val
feito
Saída:
$ Bash for_list8.sh
Espero que os exemplos deste tutorial o ajudem a entender o uso de para loop Para iterar a lista de strings, para um vídeo sobre este tópico, veja abaixo: