Hoe kan ik veel dingen doen in één enkele loop?
De loops die je tot nu toe hebt gezien hebben allemaal één enkele opdracht of pipeline in hun body, maar een loop kan elk aantal opdrachten bevatten. Om de shell te vertellen waar de ene eindigt en de volgende begint, moet je ze scheiden met puntkomma's:
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
Stel dat je de puntkomma tussen de opdrachten echo en head in de vorige loop vergeet,
waardoor je de shell vraagt om het volgende uit te voeren:
for f in seasonal/*.csv; do echo $f head -n 2 $f | tail -n 1; done
Wat zal de shell doen?
Deze oefening maakt deel uit van de cursus
Introductie tot de shell
Praktische interactieve oefening
Zet theorie om in actie met een van onze interactieve oefeningen.
Begin met trainen