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
<cours>Introduction au shell</cours>Exercice interactif pratique
Transformez la théorie en action avec l’un de nos exercices interactifs
Commencer l’exercice