Linux

Lập trình Shell (Bash script)

Thay vì phải thực thi nhiều câu lệnh phức tạp, mất thời gian, chúng ta có thể viết vào một file để thực thi nó, chúng ta gọi đó là shell script. Trong bài viết hôm nay minh sẽ giới thiệu với các bạn những câu lệnh cơ bản để có thể tạo ra một file bash script.

Trong linux có nhiều shell khác nhau như Sh shell, Dash Shell, Bash Shell. Tuy nhiên mình sẽ giới thiệu bash shell vì nó là shell tiêu chuẩn và thông dụng nhất.

Xem thêm: Một vài điều thú vị với bash script

Bash script

Đầu tiên các bạn mở terminal lên, ở đây mình dùng terminator , Trong thư mục hiện tại hoặc bất cứ đâu mà bạn muốn, tạo một file test.sh, mở file này ra và gõ vào như sau:

#!/bin/bash

echo “Hello World !”

Save file lại và chúng ta đã được một file bash script đơn giản. Trong dòng đầu tiên là khai báo loại ngôn ngữ mà ta sử dụng, ở đây là bash. Sau dấu #! là đường dẫn trỏ đến lệnh bash.

Dòng thứ 2 là lệnh đơn giản in ra màn hình dòng chữ “Hello World!”. Để thực thi file bash này chúng ta chạy lệnh:

→ bash test.sh

Các bạn sẽ thấy “Hello World” được in ra. Cách thứ 2 để chạy file bash này là bạn cấp quyền execute cho nó bằng lệnh

→ chmod +x  test.sh

Sau đó chạy bằng lệnh

→ ./test.sh 

Và kết quả tương tự như cách thứ nhất. Các bạn hãy tự kiểm tra nhé.

Xem thêm: Cùng học viết Bash Script cơ bản giúp chống tấn công DOS vào website

Biến và tham số

Tương tự như các ngôn ngữ lập trình khác, bash script cũng có các khái niệm biến và tham số. Tuy nhiên trong bash biến chỉ có 4 kiểu dữ liệu là:

  1. String
  2. integer
  3. constant
  4. Array

Trong đó stringinteger là 2 kiểu dữ liệu được sử dụng phổ biến nhất, khai báo biến ta thực hiện như sau: Các bạn lại mở file test.sh lên và tiếp tục code 😃

name=”phuc”
age=16
echo $name
echo $age

Lưu file lại và chạy lệnh ./test.sh để xem kết quả.

Chú ý:

  • Các bạn lưu ý dấu = phải viết liền không được có dấu cách ví dụ age = 16, sẽ báo lỗi cú pháp.
  • Biến phân biệt chữ hoa và chữ thường, ví dụ biến NAME sẽ khác biến name

Tiếp theo để truyền tham số vào file bash ta mở file test.sh và khai báo như sau:

name=$1
age=$2
echo “Name : ” $name
echo “Age : ” $age

Lưu file và chạy thử bằng lệnh

→ ./test.sh phuc 16

Kết quả sẽ hiển thị ra màn hình. Các bạn lưu ý $1 là tham số thứ nhất , và $2 là tham số thứ hai được truyền vào trong câu lệnh thực thi trên.

Để thực hiện phép toán trong bash script ta làm như sau, Ví dụ ta muốn tính bình phương của một số:

→ ./test.sh 2

Chúng ta muốn hiển thị ra màn hình kết quả là : “Bình phuong cua 2 là : 4” vậy trong file bash thì lại làm như sau

number=$(($1 * $1))
echo “Binh phuong cua $1 la : $number”

Các bạn lưu lại và test thử, nếu không truyền tham số vào sẽ gặp lỗi ngay

Xem thêm: Tìm hiểu về ngôn ngữ lập trình AWK: Cách sử dụng AWK trong Bash script

Lệnh điều kiện

Trong bash script ta cũng có các lệnh điều kiện if, else như các ngôn ngữ khác, tuy nhiên cú pháp có phần phức tạp và khó nhớ hơn, các bạn cố gắng tiêu hóa

Trở lại với bài toán tính bình phương ở trên, nếu ta không nhập tham số vào thì thay vì bị báo lỗi, ta sẽ xử lý bằng lệnh điều kiện như sau:

if [ -z $1 ]; then
    echo "Chua nhap tham so"            
else
    number=$(($1 * $1))
    echo "Binh phuong cua $1 la : $number"
fi
  • -z là nếu không tồn tại tham số 1

Các bạn lưu lại và chạy thử với hai trường hợp, 1 là không nhập tham số, 2 là nhập tham số là một số bất kỳ.

Một số điều kiện cho if, else khác các bạn có thể tham khảo bảng sau đây:

Lệnh so sánh với số

Cú phápÝ nghĩa
n1 -eq n2Kiểm tra n1 = n2
n1 -ne n2Kiểm tra n1 khác n2
n1 -lt n2Kiểm tra n1 < n2
n1 -le n2Kiểm tra n1 <= n2
n1 -gt n2Kiểm tra n1 > n2
n1 -ge n2Kiểm tra n1 >= n2

Lệnh so sánh với chuỗi

Cú phápÝ nghĩa
s1 = s2Kiểm tra s1 = s2
s1 != s2Kiểm tra s1 khác s2
-z s1Kiểm tra s1 có kích thước bằng 0
-n s1Kiểm tra s1 có kích thước khác 0
s1Kiểm tra s1 khác rỗng

Toán tử kết hợp

Column 1Column 2
!Phủ định (not)
-aVà (and)
-oHoặc (or)

Lệnh kiểm tra file (nói chung cho cả tệp và thư mục)

Cú phápÝ nghĩa
-f fileKiểm tra xem file có phải là tệp hay không
-d fileKiểm tra xem file có phải là thư mục hay không
-r fileKiểm tra file có đọc (read) được hay không
-w fileKiểm tra file có ghi (write) được hay không
-x fileKiểm tra file có thực thi (execute) được hay không
-s fileKiểm tra file có kích thước lớn hơn 0 hay không
-e fileKiểm tra xem file có tồn tại hay không

Kết luận

Như vậy trong phần này mình đã giới thiệu đến các bạn những điều cơ bản nhất trong lập trình shell, và ở đây là bash script. Khi mới tiếp cận bạn có thể sẽ gặp khá nhiều khó khăn vì cú pháp của bash hơi khó nhớ, nhưng không sao, phần nào không nhớ ta lại google. Chúc các bạn run code thành công. Ở bài viết tiếp theo mình sẽ nói về Sự khác nhau giữa SH và Bash. Cảm ơn các bạn đã theo dõi bài viết.

Một số bài viết liên quan có thể bạn quan tâm:

Mọi thắc mắc xin hãy liên hệ
Email: [email protected]

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button