Crie um arquivo bash chamado ‘ for_list1.sh ’E adicione o seguinte script. Um valor de string com espaços é usado no loop for. Por padrão, o valor da string é separado por espaço. O loop For dividirá a string em palavras e imprimirá cada palavra adicionando uma nova linha.
#! / bin / bash
# Leia uma string com espaços usando o loop for
paravalornoEu gosto de programação
Faz
jogou fora $ valor
feito
Saída:
$bashfor_list1.sh
Exemplo-2: Iterando uma variável de string usando o loop for
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 for. 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'
# Iterar a variável string usando o loop for
parahorasno $ StringVal;Faz
jogou fora $ horas
feito
Saída:
$bashfor_list2.sh
Exemplo-3: Iterar 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 irá gerar a saída dividindo esses valores em várias palavras e imprimindo como um valor separado. Mas esta não é a saída adequada. A solução desse tipo de problema é mostrada no próximo exemplo.
#! / bin / bash# Declara um array de string com type
declarar -para StringArray=('Linux Mint' 'Fedora' 'Red Hat Linux' 'Ubuntu' 'Debian' )
# Itere a matriz de string usando o loop for
parahorasno $ {StringArray [@]};Faz
jogou fora $ horas
feito
Saída:
$bashfor_list3.sh
Exemplo 4: Imprimir o valor da string de várias palavras como um único valor
Crie um arquivo bash chamado ‘ for_list4.sh ’E adicione o seguinte script. Neste exemplo, cada elemento 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 do array com aspas duplas dentro de um loop.
#! / bin / bash# Declara uma matriz de string com tipo
declarar -para StringArray=('Windows XP' 'Windows 10' 'Windows ME' 'Windows 8.1'
'Windows Server 2016' )
# Leia os valores da matriz com espaço
parahorasno '$ {StringArray [@]}';Faz
jogou fora $ horas
feito
Saída:
$bashfor_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 de string da matriz. O primeiro loop for é usado para exibir valores de array em várias linhas e o segundo loop for é usado para exibir valores de array em uma única linha.
#! / bin / bash# Declarar um array de string
LanguageArray=('PHP' 'Java' 'C #' 'C ++' 'VB.Net' 'Pitão' 'Perl')
# Imprime os valores da matriz em linhas
jogou fora 'Imprimir cada elemento em uma nova linha'
paraval1no $ {LanguageArray [*]};Faz
jogou fora $ val1
feito
jogou fora ''
# Imprime os valores da matriz em uma linha
jogou fora 'Imprimir todos os elementos em uma única linha'
paraval2no '$ {LanguageArray [*]}';Faz
jogou fora $ val2
feito
jogou fora ''
Saída:
$bashfor_list5.sh
Exemplo-6: iteração de valores de string separados por vírgula
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 variável é usada para definir o separador de campo.
#! / bin / bashDataList='HTML5, CCS3, BootStrap, JQuery'
Field_Separator=$ IFS
# definir vírgula como separador de campo interno para a lista de strings
IFS=,
parahorasno $ DataList;
Faz
jogou fora $ horas
feito
IFS=$ Field_Separator
Saída:
$bashfor_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 for externo é usado para ler o array combinado e o loop for interno é usado para ler cada array interno.
#! / bin / shstr_array1=('Magento 2.2.4' 'WooCommerce')
str_array2=('CodeIgnitor' 'Laravel')
combinar=(str_array1 str_array2)
paragerenciouno $ {combine [@]}
Faz
avaliação 'para val em' $ {'$ arrItem'[@]}'; faça echo '$ val'; feito '
feito
Saída:
$bashfor_list7.sh
Exemplo 8: Usando padrão para ler a lista de strings
Crie um novo arquivo bash chamado for_list8.sh com o seguinte código. Aqui, ‘/, /’ padrão é usado para dividir os valores da string com base na vírgula.
#! / bin / sh# Defina uma lista de variáveis de string
stringList= WordPress, Joomla, Magento
# Use vírgula como separador e aplique como padrão
parahorasno $ {stringList //, /}
Faz
jogou fora $ horas
feito
Saída:
$bashfor_list8.sh
Espero que os exemplos deste tutorial ajudem você a entender o uso de para loop para iterar a lista de strings, para um vídeo sobre este tópico, veja abaixo: