Bash para exemplos de loop

Bash para exemplos de loop
Loops são uma parte muito essencial de qualquer tipo de linguagem de programação ou script. Como qualquer outra programação padrão, os loops são usados ​​na programação de bash para fazer tarefas repetitivas. Entre os três tipos de loops (enquanto, do-while, para), pois o loop é muito útil para realizar vários tipos de tarefas iterativas. Os usos básicos de 'para' loop é mostrado aqui. Mas o loop 'para' pode ser usado para realizar algumas tarefas de nível antecipado. Se você quiser saber mais usos para loop, deve ler este tutorial. 12 Exemplos mais úteis de 'para' loop são mostrados neste tutorial para conhecer outros usos específicos de 'para' loop in bash.

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.

Conclusão:

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.