Как выполнить несколько действий в одном цикле?
Во всех циклах, которые вы видели до сих пор, тело содержало только одну команду или конвейер, однако цикл может включать любое количество команд. Чтобы указать оболочке, где заканчивается одна команда и начинается следующая, их нужно разделять точкой с запятой:
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
Предположим, вы забыли поставить точку с запятой между командами echo и head в предыдущем цикле и попросили оболочку выполнить:
for f in seasonal/*.csv; do echo $f head -n 2 $f | tail -n 1; done
Что сделает оболочка?
Это упражнение является частью курса
Введение в Shell
Практическое интерактивное упражнение
Превратите теорию в практику с помощью одного из наших интерактивных упражнений
Начать упражнение