Comment effectuer plusieurs opérations dans une seule boucle ?
Les boucles que vous avez vues jusqu’à présent ont toutes une seule commande ou un seul pipeline dans leur corps, mais une boucle peut contenir un nombre quelconque de commandes. Pour indiquer au shell où se termine une commande et où commence la suivante, vous devez les séparer par des points-virgules :
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
Supposons que vous oubliez le point-virgule entre les commandes echo
et head
dans la boucle précédente,
de manière à exécuter :
for f in seasonal/*.csv; do echo $f head -n 2 $f | tail -n 1; done
Que fera le shell ?
Cet exercice fait partie du cours
Introduction au shell
Exercice interactif pratique
Passez de la théorie à la pratique avec l’un de nos exercices interactifs
