1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Nhập môn Shell

Connected

Bài tập

Làm sao truyền tên tệp cho script?

Một script xử lý các tệp cụ thể thì hữu ích để ghi lại bạn đã làm gì, nhưng một script cho phép bạn xử lý bất kỳ tệp nào bạn muốn còn hữu ích hơn. Để hỗ trợ điều này, bạn có thể dùng biểu thức đặc biệt $@ (dấu đô-la theo ngay sau là ký tự a còng) để chỉ "tất cả các tham số dòng lệnh được truyền cho script".

Ví dụ, nếu unique-lines.sh chứa sort $@ | uniq, khi bạn chạy:

bash unique-lines.sh seasonal/summer.csv

shell sẽ thay $@ bằng seasonal/summer.csv và xử lý một tệp. Nếu bạn chạy:

bash unique-lines.sh seasonal/summer.csv seasonal/autumn.csv

nó sẽ xử lý hai tệp dữ liệu, và tương tự cho nhiều tệp hơn.

Nhắc lại: để lưu những gì bạn đã viết trong Nano, gõ Ctrl + O để ghi tệp, sau đó Enter để xác nhận tên tệp, rồi Ctrl + X để thoát trình soạn thảo.

Hướng dẫn 1/2

undefined XP
  • 1

    Chỉnh sửa script count-records.sh bằng Nano và điền vào hai chỗ trống ____ bằng $@ và -l (chữ cái) tương ứng để script đếm số dòng trong một hoặc nhiều tệp, loại trừ dòng đầu tiên của mỗi tệp.

  • 2

    Chạy count-records.sh trên seasonal/*.csv và chuyển hướng đầu ra vào num-records.out bằng >.