Làm sao để thực hiện nhiều việc trong một vòng lặp duy nhất?
Các vòng lặp bạn đã thấy đến giờ chỉ có một lệnh hoặc một pipeline trong thân, nhưng một vòng lặp có thể chứa bao nhiêu lệnh cũng được. Để cho shell biết lệnh này kết thúc và lệnh kế tiếp bắt đầu ở đâu, bạn phải ngăn cách chúng bằng dấu chấm phẩy:
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
Giả sử bạn quên dấu chấm phẩy giữa echo và head trong vòng lặp trước,
để rồi yêu cầu shell chạy:
for f in seasonal/*.csv; do echo $f head -n 2 $f | tail -n 1; done
Shell sẽ làm gì?
Bài tập này là một phần của khóa học
Nhập môn Shell
Bài tập tương tác thực hành
Biến lý thuyết thành hành động với một trong các bài tập tương tác của chúng tôi
Bắt đầu bài tập