Lập trình shell

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()

$ 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()

$ 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.

$ !/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.

$ 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:

Viết một bình luận

This site uses Akismet to reduce spam. Learn how your comment data is processed.