НачатьНачать бесплатно

Как выполнить несколько действий в одном цикле?

Во всех циклах, которые вы видели до сих пор, тело содержало только одну команду или конвейер, однако цикл может включать любое количество команд. Чтобы указать оболочке, где заканчивается одна команда и начинается следующая, их нужно разделять точкой с запятой:

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

Посмотреть курс

Практическое интерактивное упражнение

Превратите теорию в практику с помощью одного из наших интерактивных упражнений

Начать упражнение