CodeGym /Các khóa học /Docker SELF /Giới thiệu về bash-script: cú pháp, biến, lệnh

Giới thiệu về bash-script: cú pháp, biến, lệnh

Docker SELF
Mức độ , Bài học
Có sẵn

Giới thiệu về bash-script: cú pháp, biến, lệnh

1. Bash script là gì?

Nếu bạn từng nghĩ: "Tại sao mình phải lặp đi lặp lại các lệnh giống nhau?", vậy thì chúc mừng, bạn đã sẵn sàng với bash script rồi đấy! Bash script là cách để tự động hóa công việc trên Linux bằng cách viết một chuỗi lệnh trong một file. Bash (Bourne Again Shell) không chỉ là một shell, nó là con dao đa năng dành cho admin, lập trình viên và bất kỳ ai muốn hệ thống làm việc cho mình.

Lợi ích của bash script

  • Tiết kiệm thời gian: Viết một lần — chạy tám lần.
  • Lặp lại công việc giống nhau: Các kịch bản chạy giống nhau mỗi lần chạy (tất nhiên, nếu bạn viết đúng).
  • Tự động hóa công việc nhàm chán: Tạo lệnh tùy chỉnh để sao lưu, giám sát tài nguyên hoặc quản lý file.

2. Cơ bản về tạo scripts

Ok, cùng bắt đầu nào. Bash script chỉ đơn giản là một file văn bản chứa tập hợp các lệnh. Nhưng để Linux hiểu nó là script chứ không phải mấy ghi chú linh tinh trong nhật ký, bạn cần tuân theo một số quy tắc nhất định.

Bước 1: Tên và định dạng file

Bash scripts thường có đuôi mở rộng .sh (nhưng không bắt buộc). Ví dụ:

hello_world.sh
backup_script.sh

Bước 2: Shebang bắt buộc

Mỗi bash script bắt đầu bằng dòng:

#!/bin/bash

Dòng này gọi là shebang và nó cho hệ thống biết rằng cần sử dụng interpreter /bin/bash để thực thi script. Nếu không có nó, hệ thống sẽ chỉ nhìn vào script của bạn, thở dài buồn bã và sẽ chẳng làm gì cả.

Bước 3: Script đơn giản nhất

Cùng tạo và chạy script hiển thị dòng chữ "Xin chào, thế giới!". Dù sao thì, tại sao lại không nhỉ?

  1. Tạo file:

    nano hello_world.sh
    
  2. Thêm các dòng:

    #!/bin/bash
    echo "Xin chào, thế giới!"
  3. Đặt file ở chế độ khả năng thực thi:

    chmod +x hello_world.sh
    
  4. Chạy script:

    ./hello_world.sh
    

Trên màn hình bạn sẽ thấy:

Xin chào, thế giới!

3. Làm việc với biến

Biến là nơi lưu trữ dữ liệu trong script của bạn. Chúng làm cho script linh hoạt và tiện lợi hơn.

Tạo biến

Để khai báo một biến, sử dụng format:

TEN_BIEN="giatri"

Ví dụ:

NAME="Linux"
echo "Chào mừng đến với $NAME!"

Kết quả:

Chào mừng đến với Linux!

Lưu ý: không được để khoảng trắng giữa tên biến và dấu =. Nếu bạn làm vậy, bash sẽ nghĩ rằng bạn đang cố gắng viết gì đó lung tung và sẽ báo lỗi.

Biến được định nghĩa sẵn

Bash cung cấp một số biến được định nghĩa sẵn, chẳng hạn như:

  • $USER — người dùng hiện tại.
  • $HOME — thư mục chính.
  • $PWD — thư mục làm việc hiện tại.

Thử chạy script này:

#!/bin/bash
echo "Xin chào, $USER!"
echo "Thư mục chính của bạn: $HOME"
echo "Bạn đang làm việc ở đây: $PWD"

4. Nhận dữ liệu từ người dùng

Đôi khi script cần nhận dữ liệu từ người dùng để hoạt động. Để làm điều này, sử dụng lệnh read.

Ví dụ:

#!/bin/bash
echo "Tên bạn là gì?"
read NAME
echo "Xin chào, $NAME!"

Sau khi chạy script, bạn sẽ có thể nhập tên của mình, và script sẽ chào bạn một cách cá nhân.


5. Sử dụng lệnh bên trong script

Bash cho phép chạy các lệnh như khi bạn gõ trực tiếp chúng trong terminal.

Ví dụ:

#!/bin/bash
echo "Ngày giờ hiện tại:"
date

Lệnh date sẽ hiển thị ngày và giờ hiện tại, chẳng hạn:

Ngày giờ hiện tại:
Mon Oct 30 12:34:56 UTC 2023

Lưu kết quả của lệnh vào biến

Bạn có thể lưu đầu ra của một lệnh vào biến bằng cách sử dụng $(). Điều này rất tiện để xử lý dữ liệu sau đó.

Ví dụ:

#!/bin/bash
CURRENT_DATE=$(date)
echo "Bây giờ là: $CURRENT_DATE"

6. Bình luận trong script

Luôn luôn thêm bình luận để sau một tháng vẫn hiểu bạn đã viết gì. Sử dụng ký hiệu # để bình luận:

#!/bin/bash
# Đây là script chào mừng
echo "Chào mừng đến thế giới Bash!"

Bình luận bị trình thông dịch bỏ qua và không ảnh hưởng đến việc thực thi.


7. Ví dụ

Bây giờ viết script kiểm tra xem file có tồn tại không nhé.

  1. Tạo file:

    nano file_checker.sh
    
  2. Thêm code:

    #!/bin/bash
    
    # Yêu cầu tên file
    echo "Nhập tên file:"
    read FILE_NAME
    
    # Kiểm tra xem file có tồn tại không
    if [ -f "$FILE_NAME" ]; then
        echo "File $FILE_NAME tồn tại."
    else
        echo "File $FILE_NAME không tìm thấy."
    fi
  3. Làm cho file có thể thực thi và chạy nó:

    chmod +x file_checker.sh
    ./file_checker.sh
    
  4. Ví dụ hoạt động của script:

    Nhập tên file:
    test.txt
    File test.txt tồn tại.
    

8. Những lỗi phổ biến

Viết bash-script không chỉ mang lại niềm vui mà thỉnh thoảng còn gây đau đầu nghiêm trọng. Dưới đây là một số lỗi phổ biến:

  1. Thiếu shebang.
    Nếu không có dòng #!/bin/bash, script của bạn có thể cố gắng chạy bằng trình thông dịch khác, dẫn đến lỗi.

  2. Biến chưa khai báo.
    Nếu bạn vô tình gõ sai tên biến, bash sẽ coi nó là rỗng. Bật chế độ kiểm tra nghiêm ngặt bằng set -u ở đầu script.

  3. Dấu cách xung quanh =.
    Đừng bao giờ viết như thế này: VARIABLE = "value". Điều này sẽ gây lỗi.

  4. Vấn đề về quyền.
    Nếu script không có quyền thực thi, thêm quyền bằng chmod +x.

Bài tập thực hành

  1. Viết script mà:

    • Yêu cầu tên người dùng.
    • In ra câu chào mừng.
    • Hiển thị ngày và giờ hiện tại.
  2. Viết script mà:

    • Yêu cầu người dùng nhập tên file.
    • Tạo file nếu nó chưa tồn tại, hoặc thông báo rằng file đã tồn tại.

Bây giờ bạn đã biết những điều cơ bản về bash-script! Còn việc học cách thêm điều kiện và vòng lặp, nhưng đó là chủ đề của bài giảng tiếp theo. Tiến lên, tự động hóa thế giới nào!

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION