(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

𝐌𝐄𝐙𝐎𝐍 – 𝐓𝐇𝐄 𝐔𝐋𝐓𝐈𝐌𝐀𝐓𝐄 𝐏𝐋𝐀𝐓𝐅𝐎𝐑𝐌 𝐅𝐎𝐑 𝐂𝐎𝐌𝐌𝐔𝐍𝐈𝐓𝐈𝐄𝐒 & 𝐁𝐔𝐒𝐈𝐍𝐄𝐒𝐒

Discord is a widely used communication platform, but is it truly the best solution for community and business management? While it excels in creating...
Avatar photo Ngan Ton Thuy
3 min read

𝐌𝐞𝐳𝐨𝐧 𝐯𝐬 𝐒𝐥𝐚𝐜𝐤 – 𝐖𝐡𝐢𝐜𝐡 𝐎𝐧𝐞 𝐄𝐧𝐡𝐚𝐧𝐜𝐞𝐬 𝐘𝐨𝐮𝐫 𝐁𝐮𝐬𝐢𝐧𝐞𝐬𝐬…

Both Mezon and Slack are powerful communication platforms, but which one is the right fit for your organization? Let’s compare their key features: 𝐔𝐬𝐚𝐠𝐞...
Avatar photo Ngan Ton Thuy
1 min read

𝐌𝐄𝐙𝐎𝐍 𝐂𝐀𝐌𝐏𝐔𝐒 𝐏𝐀𝐑𝐓𝐍𝐄𝐑 — 𝐄𝐦𝐩𝐨𝐰𝐞𝐫𝐢𝐧𝐠 𝐒𝐭𝐮𝐝𝐞𝐧𝐭-𝐋𝐞𝐝 𝐈𝐧𝐢𝐭𝐢𝐚𝐭𝐢𝐯

Mezon Campus Partner is an all-in-one program designed to support: – Student competitions – Career development initiatives – Student-led clubs and creative teams 𝐖𝐡𝐚𝐭...
Avatar photo Ngan Ton Thuy
44 sec read

Leave a Reply

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