Nội Dung Bài Viết
1. Sử dụng shell
1.1 Sử dụng shell từ dòng lệnh (terminal)
Ví dụ: Tìm kiếm file nguồn chứa chuỗi main()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | $ for file in * > do > if grep -l 'main()' $file > then > more $file > fi > done coppy_ex3.c #include <stdio.h> int main(){ int age = 10; int height = 72; printf("I am %d year old.\n",age); printf("I am %d inches tall.\n",height); return 0; } grep: Desktop: Is a directory grep: Documents: Is a directory grep: Downloads: Is a directory grep: Driver: Is a directory |
Khi bạn nhập đủ một lệnh trên terminal và nhấn Enter thì terminal xuất hiện dấu > để nhập lệnh tiếp theo. Shell sẽ tự nhận biết khi nào kết thúc lệnh để thực thi, như lệnh do kết thúc là done khi bạn nhập done và Enter thì chương trình shell của bạn đã bắt đầu thực hiện.
Nhưng việc bất tiện của lập trình shell trên terminal là bạn có thể sử dụng lại được đoạn code mà bạn vừa gõ trước đó. Nhưng khi bạn nhấn mũi tên lên để lấy lại lệnh thì nõ sẽ xuất hiện như thế này.
$ for file in *; do if grep -l ‘main()’ $file; then more $file; fi; done
Nằm hết trên một hàng và các lệnh cách nhau bằng dấu ;. Hùm thật là khó nhìn là chẳng dễ để mà debug, nhưng có cách giải quyết ở phần tiếp theo.
1.2 Sử dụng shell bằng tiệp tin kịch bản ( Script file)
Ví dụ: Tìm kiếm file nguồn chứa chuỗi main()
1 2 3 4 5 6 7 8 9 10 11 | $ cat > script.sh # !/bin/sh # script.sh for file in * do if grep -q 'main()' $file then more $file fi done exit 0 |
# là lệnh comment trong shell, nhưng # ! không mang ý nghĩa lf comment đâu nhé, nó là chỉ thị yêu cầu shell hiện tại triệu gọi shell sh nằm trong mục bin.
Lệnh exit 0 trả về mã lỗi. Quy ước 0 cho biết thực thi thành công, khác không là mã lỗi.
Nhưng file script của ta chưa thực hiện được như khi nhập lệnh trên terminal được. Để thực thi file này ta qua phần tiếp theo nhé.
1.3 Thực thi file script
Ta triệu gọi shell bằng lệnh $ /bin/sh và tên file .sh của ta vừa tạo ra. Hoặc cấp quyền bằng chmod cho file vừa tạo và chạy file ở thư mục hiện hành.
ví dụ: Cách 1.
1 2 3 4 5 6 7 8 9 10 11 | $ !/bin/sh script.sh #include <stdio.h> int main() { int age = 10; int height = 72; printf("I am %d year old.\n",age); printf("I am %d inches tall.\n",height); return 0; } |
ví dụ: Cách 2.
1 2 3 4 5 6 7 8 9 10 11 | $ chmod +x script.sh $ ./script.sh #include <stdio.h> int main() { int age = 10; int height = 72; printf("I am %d year old.\n",age); printf("I am %d inches tall.\n",height); return 0; } |
Bài viết các bạn có thể tham khảo:
- Lập trình shell (Tiếp theo 2)
- Lập trình shell (Tiếp Theo 3)
- Các tập lệnh của Linux (Phần 1) – Tìm hiểu Linux cơ bản