เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

จะรันคำสั่งหลายคำสั่งในลูปเดียวได้อย่างไร?

ลูปที่เห็นมาจนถึงตอนนี้มีคำสั่งหรือ 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

ดูคอร์ส

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำจริง

เปลี่ยนทฤษฎีให้เป็นการลงมือทำด้วยแบบฝึกหัดเชิงโต้ตอบหนึ่งในของเรา

เริ่มแบบฝึกหัด