จะเกิดอะไรขึ้นเมื่อไม่ระบุชื่อไฟล์?
ข้อผิดพลาดที่พบบ่อยใน shell script (และการใช้คำสั่งแบบโต้ตอบ) คือการวางชื่อไฟล์ผิดตำแหน่ง หากพิมพ์:
tail -n 3
เนื่องจาก tail ไม่ได้รับชื่อไฟล์ใดๆ ระบบจะรอรับข้อมูลจากคีย์บอร์ดแทน
นั่นหมายความว่าหากพิมพ์:
head -n 5 | tail -n 3 somefile.txt
tail จะแสดง 3 บรรทัดสุดท้ายของ somefile.txt ตามปกติ แต่ head จะรอรับข้อมูลจากคีย์บอร์ดไปเรื่อยๆ เพราะไม่ได้รับชื่อไฟล์และไม่มีคำสั่งใดส่งข้อมูลมาให้ใน pipeline
สมมติว่าพิมพ์คำสั่งนี้โดยไม่ตั้งใจ:
head -n 5 | tail -n 3 somefile.txt
ควรทำอย่างไรต่อไป?
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Introduction to Shell
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำจริง
เปลี่ยนทฤษฎีให้เป็นการลงมือทำด้วยแบบฝึกหัดเชิงโต้ตอบหนึ่งในของเรา
เริ่มแบบฝึกหัด