(P.3) Shell Scripting: Quick Beginner’s Guide ⚙

3 min read

Trong phần trước, chúng ta đã tìm hiểu được các loại biến và cách khai báo chúng. Chúng ta cũng đã chạy được shell script đầu tiên.

Cũng giống như các ngôn ngữ lập trình khác, shell cũng có function, if , loop, ….Ở phần này, chúng ta hãy cùng tìm hiểu về nó nhé

1. Conditionals

1.1 If-Else

Một câu lệnh if/else cơ bản sẽ có cấu trúc như sau:

if condition; then #Code to execute if condition is true; else # Code to execute if condition is true

Ví dụ:

if mkdir "NCC"; then echo "created NCC"; else echo "come on use another name"; fi


Chạy lệnh trên hai lần, lần đầu bạn sẽ thấy “created NCC” và kiểm tra bằng lệnh ls xem nó đã tạo thư mục chưa. Khi bạn chạy lại lệnh tương tự, nó sẽ hiển thị:

Nếu bạn muốn sử dụng else if chỉ cần thêm elif . Nhưng nếu chúng ta muốn thực hiện kiểm tra các điều kiện thì sao?

if [ condition ]; then
    # Code to execute if condition is true
else
    # Code to execute if condition is false
fi

Ví dụ:

1.2 Cases

Câu lệnh case hiệu quả hơn việc sử dụng nhiều câu lệnh Elif. Cú pháp cơ bản là:

case $variable in
    pattern1)
        # Code to execute for pattern1
        ;;
    pattern2)
        # Code to execute for pattern2
        ;;
    pattern3)
        # Code to execute for pattern3
        ;;
    *)
        # Code to execute if none of the patterns match
        ;;
esac

Bắt đầu bằng case và kết thúc bằng esac, nhớ rằng mỗi khi kết thúc block có dấu ;;

*) là wildcard pattern sẽ match với tất cả các case mà không match với case nào trước đó. Trong ví dụ này, nếu biến fruit=”watermelon”, nó sẽ match vào case *) và in ra màn hình “It’s something else.” 

2. Looping Through Life

Trong shell script các vòng lặp for, while until được sử dụng để thực thi mã lặp lại. Dưới đây là tổng quan về từng loại cùng với các ví dụ:

1️⃣ Vòng lặp For: được sử dụng để lặp qua một chuỗi các giá trị, chẳng hạn như số hoặc phần tử trong một mảng.

#!/bin/bash

for ((i=0;i<5;i++))
do
  echo $i
done

2️⃣ Vòng lặp while: dùng để thực thi một block code là miễn là điều kiện đã chỉ định là đúng

#!/bin/bash
i=10
while [i -gt 0]
do
  echo $i
  ((i--))
done

3️⃣ Until loop: Vòng lặp do-while hoặc vòng lặp until tương tự như vòng lặp while, nhưng nó đảm bảo rằng khối mã được thực thi ít nhất một lần trước khi kiểm tra điều kiện.

#!/bin/bash
i=1
until ((i==0))
do
  echo $i
  i = i-1
done

Các vòng lặp này mang lại sự linh hoạt cho các tác vụ lặp đi lặp lại trong tập lệnh shell và việc lựa chọn giữa chúng phụ thuộc vào yêu cầu cụ thể của tập lệnh. Nếu bạn để ý, cả ba vòng lặp for, while và Until đều có các từ khóa done và done.

Khi bắt đầu vòng lặp, chúng ta đề cập đến do và khi lặp xong, chúng ta kết thúc bằng done. Tôi chắc chắn rằng cho đến nay, bạn đã sử dụng nhiều vòng lặp và sẽ hơi chabs nếu giải thích từng vòng lặp và giải thích thêm. Vì vậy, hãy đi sâu vào Fucntions.

3. Functions

Trong Shell script, function dùng để nhóm một tập hợp lệnh thành một đơn vị duy nhất có thể được sử dụng lại và gọi bằng một tên cụ thể. Cú pháp khia báo một hàm trong Shell khá giống với trong JavaScript

functionName() {
    # Code to be executed
    # ...
    # Optionally, return a value
    return value
}

Ví dụ:

4. Tổng kết

Ở phần này chúng ta đã tìm hiểu về những hàm cơ bản để có thể lập trình tự động hóa bằng Shell. Tuy vậy, đó chỉ là những thứ cơ bản, còn rất nhiều thứ nâng cao trong shell script đang chờ bạn khám phá.

Nguồn tài liệu tham khảo:

Các phần liên quan:

Avatar photo

Clean Code: Nguyên tắc viết hàm trong lập trình…

Trong quá trình phát triển phần mềm, việc viết mã nguồn dễ đọc, dễ hiểu là yếu tố then chốt để đảm bảo code...
Avatar photo Dat Tran Thanh
3 min read

Clean Code: Nguyên tắc comment trong lập trình

Trong lập trình, code không chỉ là một tập hợp các câu lệnh để máy tính thực thi, mà còn là một hình thức...
Avatar photo Dat Tran Thanh
3 min read

Clean Code: Nguyên tắc xử lý lỗi (Error Handling)

Trong quá trình phát triển phần mềm, việc xử lý lỗi không chỉ là một phần quan trọng mà còn ảnh hưởng trực tiếp...
Avatar photo Dat Tran Thanh
4 min read

Leave a Reply

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