Logo pt.nowadaytechnol.com

Como Usar O BASH Para Loop

Índice:

Como Usar O BASH Para Loop
Como Usar O BASH Para Loop

Vídeo: Como Usar O BASH Para Loop

Vídeo: Como Usar O BASH Para Loop
Vídeo: Bash until Loop 2024, Marcha
Anonim

Um dos truques mais básicos ao criar scripts bash envolve fazer um loop para que certas tarefas sejam executadas automaticamente várias vezes. Eventualmente, o loop alcançará a condição de teste predeterminada e de repente deixará de ser executado. Loops como esses funcionarão perfeitamente no bash no Linux e macOS, bem como no shell bash dentro do Windows 10 e até mesmo nos vários shells no FreeBSD. Naturalmente, você pode escrever qualquer comando que preferir em qualquer loop e manter qualquer processo em andamento pelo tempo que desejar. Embora escreveremos alguns loops extremamente simples, você pode usar essas habilidades para criar qualquer tipo de script que desejar.

Existem muitas maneiras de começar a escrever um script, mas para esta discussão vamos supor que você abriu o prompt de comando procurando pelo terminal no Dash, clicando nele nos menus KDE, MATE, LX ou Whisker ou segurando para baixo Ctrl, Alt e T ao mesmo tempo. Embora discutiremos vi / vim e nano como editores, a questão de qual editor usar é bastante pessoal e você pode trabalhar com o que quiser.

Método 1: o loop até

Talvez o loop mais básico no bash seja o loop until. Ele continuará executando comandos até que a condição de teste definida se torne verdadeira. Assumiremos que você usou o nano ou o vi para abrir um arquivo inexistente chamado until.sh e está pronto para inserir texto novo nele. Faremos apenas algo que conte até 20 em seu terminal para manter isso fácil no início.

Comece digitando o seguinte:

#! / bin / bash

n = 0

até [$ n -gt 20]

Faz

echo $ n

((n ++))

feito

Se você estiver usando o nano, salve-o mantendo pressionada a tecla Ctrl e pressionando O e, finalmente, X para sair. Os usuários do vi desejarão pressionar escape e, em seguida, digitar: wq para salvar e sair.

Image
Image

Próximo tipo chmod + x até Loop no prompt para torná-lo executável e, em seguida, digite ./untilLoop para executá-lo. Uma vez executado, o loop continuará imprimindo novos números em seu terminal até que a variável n chegue a 20.

Image
Image

A propósito, a primeira linha informa ao seu ambiente qual shell carregar ao trabalhar com esses scripts. Alguns programadores aconselham apenas o uso de #! / Bin / sh para garantir que seu script adere a certos padrões POSIX, mas esses scripts simples não devem ter nenhum problema em execução na grande maioria dos sistemas modernos.

Método 2: o loop for

O loop for examina cada item em uma determinada lista e, em seguida, executa um determinado conjunto de comandos nessa lista. Faremos um que imprima alguns nomes de sistemas operacionais, mas lembre-se novamente de que você pode fazer qualquer coisa com ele, se desejar.

Digite qualquer um nano forLoop ou vi forLoop no prompt de comando e comece a inserir o seguinte script. Os usuários do vi terão que entrar no modo de inserção antes de fazê-lo.

#! / bin / bash

unices = ’GNU / Linux FreeBSD OpenBSD NetBSD Solaris OpenIndianDarwin HP-UX Minix’

para unix em $ unices

Faz

echo $ unix

feito

Image
Image

Salve o arquivo novamente usando o método Ctrl + O e depois Ctrl + X no nano ou o método Esc e então: wq no vi antes de emitir o comando chmod + x forLoop para torná-lo executável. Depois de fazer isso, execute-o digitando ./forLoop no prompt. O loop for força o comando echo a trabalhar em cada um dos itens na variável unices por sua vez. Você poderia, mais uma vez, substituir essa lista por qualquer argumento e substituir echo por qualquer comando para automatizar processos longos.

Image
Image

Método 3: o loop while

Comece a editar o terceiro arquivo chamado whileLoop usando nano, vi ou qualquer outro editor que você gostaria de usar. Se você preferir usar o editor de texto gráfico, pode fazer isso também com qualquer um desses projetos, desde que certifique-se de colocar o arquivo no mesmo diretório em que está trabalhando no prompt de comando.

Dentro desse arquivo, você deseja adicionar as linhas:

#! / bin / bash

n = 0

enquanto [$ n -le 20]

Faz

echo $ n

((n ++))

feito

Image
Image

Salve o arquivo da mesma forma que salvou os outros e saia do editor de texto. Depois de sair, emita o comando chmod + x whileLoop para permitir que você o execute e, em seguida, execute ./whileLoop para executá-lo. Você verá a mesma saída que saiu do script untilLoop do primeiro método, pois ele conta de 0 a 20 em uma fração de segundo mais do que provável.

Image
Image

Esta é uma excelente demonstração do fato de que há mais de uma maneira de fazer as coisas sempre que você está trabalhando com loops dessa maneira. Embora tecnicamente não haja uma maneira errada de fazer isso, você provavelmente encontrará autores de script que afirmam que você deve escrever seus scripts mais próximos da forma como a linguagem de programação C faz as coisas ou, alternativamente, outros podem sugerir que você não deve fazer isso. Honestamente, provavelmente existem muitas maneiras corretas de resolver o problema.

Sinta-se à vontade para excluir seus scripts quando terminar de praticar com eles.

Recomendado: