Como posso fazer várias coisas em um único loop?
Todos os loops que você viu até agora têm um único comando ou pipeline no corpo, mas um loop pode conter qualquer número de comandos. Para dizer ao shell onde um termina e o outra começa, você deve separá-los com ponto e vírgula:
for f in seasonal/*.csv; do echo $f; head -n 2 $f | tail -n 1; done
seasonal/autumn.csv
2017-01-05,canine
seasonal/spring.csv
2017-01-25,wisdom
seasonal/summer.csv
2017-01-11,canine
seasonal/winter.csv
2017-01-03,bicuspid
Suponha que você tenha esquecido o ponto e vírgula entre os comandos echo
e head
no loop anterior,
e pedisse para o shell executar:
for f in seasonal/*.csv; do echo $f head -n 2 $f | tail -n 1; done
O que o shell faria?
Este exercício faz parte do curso
Introdução ao Shell
Exercício interativo prático
Transforme a teoria em ação com um de nossos exercícios interativos
