Sintaxe:
Para o loop, pode ser usado por duas maneiras em Bash. Uma maneira é 'for-in' e de outra maneira é a sintaxe no estilo C. Ambas as sintaxes são mostradas abaixo.
para variável na lista
fazer
Declarações
feito
Ou
for ((expressão1; expressão2; expressão3))
fazer
Declarações
feito
Exemplo 1: para o loop ler a variável de entrada
A lista de strings ou matriz predefinidos pode ser lida facilmente usando o loop 'para', que é mostrado no tutorial anterior de for loop. Como o conteúdo de uma variável de entrada pode ser lido usando o loop 'para' é mostrado neste exemplo. Crie um arquivo chamado 'forloop1.sh'Com o seguinte script. Um valor de entrada de um texto de várias palavras será tomado após a execução do script. Aqui, pois o loop é usado para dividir o texto em palavras com base no espaço em branco e imprimir cada palavra com a posição.
forloop1.sh
#!/BIN/BASH
eco "Digite um texto de várias palavras"
Leia o texto
i = 1
para palavra em $ text
fazer
eco "Word no- $ i = $ word"
((i = $ i+1))
feito
Saída:
Execute o script.
$ Bash Forloop1.sh
Aqui, um texto de 5 palavras é tomado, portanto, cinco linhas de saída são impressas.
Exemplo-2: para loop com uma declaração de quebra
A declaração 'Break' é usada dentro 'para' loop para rescindir do loop. Crie um arquivo chamado 'forloop2.sh ' Com o seguinte código. 'para' o loop é usado aqui para ler uma lista de quatro pessoas. Duas condições são testadas aqui. Se o nome da pessoa for 'Amir ' e a cor é 'Azul' Então o loop terá terminado após imprimir o nome e a cor da pessoa. Os valores de cores do segundo para loop serão impressos até que o valor da cor, 'azul' seja correspondido.
forloop2.sh
Para nome em Watson Micheal Sinha Amir Lily
fazer
Se [$ name == 'Amir']
então
para cor em vermelho verde vermelho branco
fazer
Se [$ color == "azul"]
então
eco "a cor favorita de $ nome é $ color"
quebrar
outro
eco "a cor atual é $ cor"
fi
feito
fi
feito
Saída:
Execute o script.
$ Bash Forloop2.sh
A saída a seguir aparecerá após a execução do script. Primeiro, duas cores, 'vermelho' e 'verde' são impressas. Quando o valor 'azul' apareceu, ele imprimiu o nome e o valor da cor da pessoa e encerrado do loop para a declaração 'Break'.
Exemplo 3: para loop com a declaração continua
A declaração 'continuar' é usada dentro do loop 'para' para pular qualquer declaração com base em uma condição específica. Crie um arquivo chamado Forloop3.sh ' com o seguinte script. Aqui, uma variável nomeada $ cursos é usado para atribuir um valor de texto. 'para' o loop é usado para ler a variável, $ cursos. O valor do texto será dividido com base no espaço e lido pelo loop 'para'. Quando o valor, 'Oracle' é comparado com Curso $ Em seguida, ele imprimirá 'Oracle não está disponível agora'. Para outros valores, 'o curso de classe de $ está em execução'. O curso que não está disponível não será executado a última declaração do loop 'para' para a declaração de continuação.
forloop3.sh
#!/bin/sh
Cursos = "Java PHP Oracle VB.líquido"
para curso em $ cursos
fazer
Se [$ curso == 'Oracle']
então
Echo "$ Course não está disponível agora"
continuar
fi
eco "o curso de classe de $ está em execução"
feito
Saída:
Execute o script.
$ Bash Forloop3.sh
A saída a seguir aparecerá após a execução do script.
Exemplo-4: Usando a saída de comando como a lista
Qualquer saída de comando bash pode ser usada no loop 'para' usando backtick ('). Crie um arquivo chamado 'Forloop4.sh ' com o seguinte script. Aqui, 'ls *.TXT' O comando é usado no loop. Este comando gerará uma lista do arquivo de texto do diretório atual. O loop 'para' iterará cada nome de arquivo da saída de comando e o armazenará na variável $ nome do arquivo Isso vai imprimir mais tarde. Aqui, $ n A variável é usada para exibir o número do arquivo.
forloop4.sh
n = 1
para o nome do arquivo em 'ls *.TXT'
fazer
eco "arquivo no- $ n: $ nome do arquivo"
((n ++))
feito
Saída:
Execute o script.
$ Bash Forloop1.sh
A saída a seguir aparecerá após a execução do script.
Exemplo 5: para o loop ler um intervalo
'para' o loop pode ser usado para leitura da gama de dados. O exemplo a seguir leu uma variedade de personagens e pesquise cada personagem existe no texto ou não. Crie um arquivo chamado 'Forloop5.sh ' e adicione o seguinte script. Aqui, o alcance, [a-z] é usado em 'para' loop. Isso significa que o loop 'para' irá por 26 vezes para cada letra maiúscula. Cada personagem é pesquisado em $ text usando o comando 'awk'. Se algum caractere encontrado, ele armazenará o valor em $ resultado. Próximo. $ resultado é verificado para qualquer conteúdo. Se não estiver vazio, uma mensagem imprimirá.
forloop5.sh
text = "Bash Script Language"
para C em a… z
fazer
resultado = 'printf "$ text" | Awk "/$ c/" '
Se [[$ resultado != ""]]
então
eco "$ c existe no texto"
fi
feito
Execute o script.
$ Bash Forloop5.sh
Aqui, os alfabetos, 'b', 'l' e 's' encontrados no texto, “linguagem de script de bash”. Então, três linhas de saída são impressas.
Exemplo 6: para o loop ler um intervalo com o incremento
O exemplo mostra como você pode usar o loop 'para' para descobrir todos os números uniformes dentro de um intervalo específico. Crie um arquivo chamado 'Forloop6.sh ' e adicione o seguinte script. Aqui, um intervalo de [2-20] é usado no loop onde cada etapa é incrementada por 2. O loop irá itera por 10 vezes e imprimirá o número em cada etapa.
forloop6.sh
eco "imprimir todos os números pares de 1 a 20"
para n em 2… 20… 2
fazer
echo -n "$ n"
feito
printf "\ done \ n"
Execute o script.
$ Bash Forloop6.sh
Todos os números uniformes dentro de 2-20 são impressos após a execução do script.
Exemplo 7: para o loop trabalhar com o arquivo
Este exemplo mostra como você pode 'para' Loop para ler uma lista de arquivo específico. Crie um arquivo chamado, 'Forloop7.sh ' e adicione o seguinte script. Aqui, o loop é usado na lista de todos os arquivos de texto do diretório atual e substitua a extensão do arquivo de '.txt 'para'.doutor.
forloop7.sh
eco "Substituindo a extensão do arquivo de todo o arquivo de texto para o arquivo DOC."
para o nome do arquivo em *.TXT; fazer
MV "$ FILENAME" "$ FileName%.TXT.doutor "
feito
eco "A substituição é feita com sucesso"
Saída:
Crie um arquivo de texto primeiro se não houver arquivo de texto no diretório atual. Aqui, um arquivo de texto chamado 'NewFile.txt 'é criado usando o comando' Cat '.
$ CAT> NEWFILE.TXT
Execute o script mencionado acima.
$ Bash Forloop7.sh
Em seguida, verifique se a extensão é alterada ou não usando o comando 'LS'.
Exemplo 8: Para Loop With Sequence Command
O exemplo a seguir mostra como você pode usar 'Seq'em' para 'loop para imprimir uma lista de número seqüencial. O comando 'seq' funciona da mesma forma como o intervalo com incremento. Crie um arquivo chamado 'Forloop8.sh ' e adicione o seguinte script. O loop imprimirá os números entre 1 a 30 omitindo três número a cada etapa.
forloop8.sh
eco "números de impressão pulando 3"
Para Sq em $ (seq 1 3 30)
fazer
eco "Número da sequência: $ sq"
feito
Saída:
Execute o script.
$ Bash Forloop8.sh
A saída a seguir aparecerá após a execução do script.
Exemplo 9: Usando Infinite for Loop
O loop infinito pode ser usado para executar qualquer tarefa repetitiva muitas vezes até que uma condição específica apareça. Crie um arquivo chamado 'Forloop9.sh ' com o script a seguir para verificar o uso do loop infinito. Aqui, nenhuma condição de rescisão é definida no loop. O loop exibe o menu de 5 listas até que o número 5 seja pressionado. Ele imprimirá uma mensagem específica para outros números de 1 a 4 e exibirá o menu novamente.
forloop9.sh
para (( ; ; ))
fazer
eco "1. Mensagem de sucesso de impressão "
eco "2. Mensagem de informações de impressão "
eco "3. Mensagem de aviso de impressão "
eco "4. Mensagem de erro de impressão "
eco "5. Saída"
eco -n "Selecione qualquer número de [1-5]:"
Leia a resposta
caso "$ resposta" em
1) eco "concluído com sucesso.";;
2) eco "entrada inválida" ;;
3) eco "Seu computador tem bateria baixa" ;;
4) Echo "Número errado de argumentos são enviados"; ;;
5) saída 0 ;;
*) eco "seleção errada" ;;
ESAC
feito
Execute o script.
$ Bash Forloop9.sh
Aqui, 9 é pressionado pela primeira vez que não existe na lista. Para esta entrada, ele é impresso "Seleção errada" e exiba o menu novamente. Em seguida, 1 é pressionado e exibiu uma mensagem "Concluída com êxito". Em seguida, 5 é pressionado para terminar a partir do programa.
Exemplo-10: Usando o loop sem a lista.
O loop 'para' pode ser usado sem qualquer lista ou matriz ou saída de comando. Como você pode usar 'para' loop para ler os argumentos da linha de comando é mostrado neste exemplo. Crie um arquivo chamado, 'Forloop10.sh ' e adicione o seguinte script. O loop irá iterar com base no número de argumentos da linha de comando. $ contra -variável é usado para encontrar cada etapa do loop que é incrementado por 1 em cada etapa.
forloop10.sh
contador = 1
para texto
fazer
Se [$ Counter -eq 2]
então
str = "Minha cor favorita é"
Elif [$ Counter -eq 3]
então
str = "eu amo"
outro
str = "eu gosto"
fi
eco "$ str $ text"
((contador = $ contador+1))
feito
Execute o script com valores de argumento da linha de comando.
$ Bash Forloop10.Programação azul de sorvete sh
O script imprimiu a mensagem, "Eu gosto de sorvete" quando o contador $ é 1, "minha cor favorita é azul" quando o contador $ é 2 e "eu amo programação" quando o contador $ é 3.
Exemplo-11: Lendo arquivos e diretórios usando o loop
O loop 'para' pode ser usado para imprimir a lista de arquivos e pastas do diretório atual. Crie um arquivo chamado 'forloop11.sh'e adicione o seguinte script. Aqui, o símbolo '*' é usado no loop 'para' para ler os arquivos e pastas do diretório atual. O loop leu cada arquivo ou nome de pasta em cada etapa e imprimi -lo no terminal com um espaço 'guia'.
forloop11.sh
Printf "Ajustando os arquivos e pastas do diretório atual… \ n \ n"
para lista em *
fazer
printf "$ list \ t"
feito
printf "\ n \ done \ n"
Execute o script.
$ Bash Forloop11.sh
Os nomes de arquivos e pastas do diretório de trabalho atual são impressos após a execução do script.
Exemplo-12: Usando uma vírgula no estilo C Bash para loop
O loop c-estilo C 'para' também é suportado em bash e este 'para' loop tem três expressões. Estas são inicialização, condição de terminação e incremento ou decréscimo. Mas usando a vírgula (,), você pode definir várias variáveis de inicialização no Bash que é mostrado neste exemplo. Crie um arquivo chamado, 'forloop12.sh ' e adicione o seguinte script. O loop aninhado 'para' é usado neste script. Duas variáveis de inicialização, $ equipe, e $ jersey são declarados no primeiro loop 'para'. O primeiro loop será encerrado quando $ equipe Vai mais de 2. Não há variável de inicialização no loop 'para' para 'e o loop interno será encerrado onde o $ jersey é mais de 3. $ jersey está definido como 1 depois de concluir o loop interno da iteração. Portanto, o loop externo irá atingir 2 vezes e o loop interno irá atingir 3 vezes.
forloop12.sh
para ((equipe = 1, Jersey = 1; equipe <= 2 ; team++))
fazer
para ((; Jersey <= 3 ; jersey++))
fazer
Echo "Team No- $ Team, Jersey no- $ Jersey"
feito
Jersey = 1
feito
Execute o script.
$ Bash Forloop12.sh
A saída a seguir aparecerá após a execução do script.
Muitos usos eficazes de 'for' é tentada explicar neste tutorial. Depois de praticar os exemplos acima, espero que os leitores obtenham conhecimento claro sobre 'para' loop e 0able para usar esse loop corretamente no script de bash.