Como usar o comando For
- Lucas Castro
- Linux
- 4 de outubro de 2021
Introdução
Muitas vezes precisamos executar a mesma tarefa no terminal para vários itens diferentes, e repetir um comando várias vezes pode ser cansativo ou até mesmo inviável dependendo da quantidade, e o For pode resolver muitas situações de maneira simples, criando um loop. Há a possibilidade de utilizá-lo in line e em shell scripts, nesse post abordaremos essas duas formas de utilização com exemplos práticos!
O primeiro for a gente nunca esquece!
Vamos utilizar o for para printar uma frase 10 vezes utilizando uma variável, conforme .sh abaixo:
#/bin/bash
for i in $(seq 10)
do
echo Esta é a $iº execução do for
done
A execução do script nos traz o seguinte resultado:
Repare, nós utilizamos o resultado no comando “Seq 10” para que uma frase seja colocada 10 vezes utilizando uma variável chamada de $i, então o for passa por todas as linhas criadas por esse comando e executa uma ação, resultando em 10 frases diferentes, entendeu a lógica?
Tá, mas como isso é útil?
São inúmeros os casos onde o for irá nos ajudar, mas vamos imaginar um cenário onde a equipe de TI precisa realizar um levantamento de todos os IP’s dos servidores dos sites abaixo:
google.com
youtube.com
facebook.com
wikipedia.org
yahoo.com
amazon.com
instagram.com
twitter.com
reddit.com
live.com
whatsapp.com
globo.com
cnn.com
uol.com.br
locaweb.com.br
registro.br
microsoft.com
brave.com
fortinet.com
rockstar.com
Para descobrir isso, vamos usar o comando host:
Agora que sabemos como fazer o processo para um site, vamos usar o FOR para executar a mesma operação para todos os sites!
Primeiro vamos armazenar todos os domínios em um arquivo chamado domains:
Dessa vez vamos executar a mesma operação dentro de um for com o seguinte script:
#/bin/bash
for domain in $(cat domains)
do
host $domain | head -n1
done
Desse modo, obteremos a informação de maneira rápida e simples, vejam:
FOR in line ?
Algumas vezes precisamos de um FOR simples e criar um arquivo.sh é desnecessario, para a operação acima por exemplo poderíamos executar:
for domain in $(cat domains);do host $domain | head -n1;done
A execução obtém exatamente o mesmo resultado:
Por fim, agradecemos a leitura e esperamos que este post tenha te ajudado de alguma maneira! Caso tenha alguma dúvida, entre em contato conosco pelo Telegram , Facebook ou Instagram ! Veja mais posts no IronLinux !