จะส่งชื่อไฟล์ให้สคริปต์ได้อย่างไร?
สคริปต์ที่ประมวลผลไฟล์เฉพาะเจาะจงมีประโยชน์ในฐานะบันทึกสิ่งที่ทำไป แต่สคริปต์ที่ให้ประมวลผลไฟล์ใดก็ได้ตามต้องการนั้นมีประโยชน์มากกว่า
เพื่อรองรับสิ่งนี้ สามารถใช้นิพจน์พิเศษ $@ (เครื่องหมายดอลลาร์ตามด้วยเครื่องหมาย at ทันที)
ซึ่งหมายถึง "พารามิเตอร์ทั้งหมดที่ส่งให้สคริปต์ผ่าน command line"
ตัวอย่างเช่น หาก unique-lines.sh มีเนื้อหาว่า sort $@ | uniq เมื่อรันคำสั่งนี้:
bash unique-lines.sh seasonal/summer.csv
เชลล์จะแทนที่ $@ ด้วย seasonal/summer.csv และประมวลผลไฟล์เดียว แต่ถ้ารันคำสั่งนี้:
bash unique-lines.sh seasonal/summer.csv seasonal/autumn.csv
ก็จะประมวลผลไฟล์ข้อมูลสองไฟล์ และสามารถเพิ่มได้เรื่อย ๆ
เตือนความจำ: หากต้องการบันทึกสิ่งที่เขียนใน Nano ให้พิมพ์ Ctrl + O เพื่อเขียนไฟล์ จากนั้นกด Enter เพื่อยืนยันชื่อไฟล์ แล้วกด Ctrl + X เพื่อออกจากตัวแก้ไข
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Introduction to Shell
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำจริง
เปลี่ยนทฤษฎีให้เป็นการลงมือทำด้วยแบบฝึกหัดเชิงโต้ตอบหนึ่งในของเรา
เริ่มแบบฝึกหัด