Comando for no Linux (loops de execução) [Guia Básico]
O shell possui estruturas para testar condições e executar determinadas sequências de programas várias vezes (loop), até que a condição testada seja satisfeita.
Os três comandos que possibilitam isso são o for (até que), o while (enquanto for verdadeiro) e until (enquanto for falso).
O comando for no Linux permite que laços (loops) sejam feitos para que um ou mais comandos sejam executados até que uma determinada variável percorra todos os valores de uma dada lista.
Veja um exemplo simples:
$ for numero in um dois três quatro cinco
do
echo "Contando: $numero"
done
Contando: um Contando: dois Contando: três Contando: quatro Contando: cinco
O mesmo comando pode ser escrito em uma só linha:
$ for numero in um dois três quatro cinco; do echo "Contando: $numero"; done
Veja o exemplo:
$ ls -1 > lista_arquivos.txt
Pode-se agora usar o for para executar diversos comandos para cada arquivo da lista:
$ for i in $(cat lista_arquivos.txt); do cp $i $i.backup; mv $i.backup /tmp/backup; done;
Este laço atribui para a variável $i cada linha do arquivo lista_arquivos.txt.
A expressão $(comando) gera uma lista com resultado do comando. Tem o mesmo efeito que utilizar o comando entre crases: `comando`.
Em seguida ele executa os comandos para renomear e mover os arquivos até que a lista esteja completa.
Agora um exemplo um pouco mais complexo, com uso do for com if:
$ for i in `ls -1`; do if test -f $i; then echo “$i é um arquivo “; else echo “$i não é um arquivo”; fi ; done
Desktop não é um arquivo
Documents não é um arquivo
Downloads não é um arquivo
HR_PROFESSOR.sql é um arquivo
Nesta linha, o resultado do comando ls -1 é colocado na variável $i; Depois cada linha da variável $i é testada para saber se é um arquivo; se for verdadeiro, será exibida uma frase e, se for falso, outra frase.
Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.
Gostou? Compartilhe
Tag:/dev, bash, certificação, certificaçãolinux, code, Comptia, developer, empreendedorismo, exame, freesoftware, gnu, hack, Linux, linuxfan, linuxfun, linuxmint, lovelinux, LPI, LPIC, management, nerd, opensource, php, prova, shell, software, softwarelivre, sql, tech, ti, unix