Comment puis-je faire plusieurs choses dans une seule boucle?
Les boucles que vous avez vues jusqu'ici n'ont qu'une seule commande ou qu'un seul tuyau (pipeline) dans leur corps, mais une boucle peut contenir autant de commandes que nécessaire. Pour indiquer au shell où une commande se termine et où la suivante commence, 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 oubliiez le point-virgule entre les commandes echo et head dans la boucle précédente,
et que vous demandiez donc au shell d'exécuter :
for f in seasonal/*.csv; do echo $f head -n 2 $f | tail -n 1; done
Que fera le shell?
Cette activité fait partie du cours
Introduction à l'invite de commande
Exercice interactif pratique
Passez de la théorie à l’action grâce à l’un de nos exercices interactifs
Commencer l’exercice