CommencezCommencez gratuitement

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

Voir le cours

Exercice interactif pratique

Passez de la théorie à l’action grâce à l’un de nos exercices interactifs

Commencer l’exercice