จะรันคำสั่งหลายคำสั่งในลูปเดียวได้อย่างไร?
ลูปที่เห็นมาจนถึงตอนนี้มีคำสั่งหรือ pipeline เพียงอันเดียวในส่วนตัวลูป แต่ในความเป็นจริง ลูปสามารถมีคำสั่งได้หลายคำสั่ง ในการบอก shell ว่าคำสั่งแต่ละคำสั่งสิ้นสุดที่ไหนและเริ่มต้นที่ไหน ต้องคั่นคำสั่งแต่ละคำสั่งด้วยเครื่องหมายเซมิโคลอน:
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 ในลูปข้างต้น
ทำให้ shell ต้องรันคำสั่งนี้แทน:
for f in seasonal/*.csv; do echo $f head -n 2 $f | tail -n 1; done
จะเกิดอะไรขึ้น?
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Introduction to Shell
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำจริง
เปลี่ยนทฤษฎีให้เป็นการลงมือทำด้วยแบบฝึกหัดเชิงโต้ตอบหนึ่งในของเรา
เริ่มแบบฝึกหัด