+4

Cơ bản về lập trình Shell (Bash Script)

Shell Script là một tập hợp các lệnh được viết trong tệp văn bản và có thể thực thi bởi trình thông dịch shell (ví dụ: bash, sh, zsh).
Bash (Bourne Again Shell) là một trong những shell phổ biến nhất trong Linux.


📝 1. Tạo và chạy một Bash Script cơ bản

1.1. Tạo một tệp script

Mở terminal và tạo một tệp script:

$ nano script.sh

Thêm nội dung sau:

#!/bin/bash
echo "Xin chào, đây là script đầu tiên của bạn!"

Lưu và đóng tệp (Ctrl + XYEnter).

1.2. Cấp quyền thực thi

$ chmod +x script.sh

1.3. Chạy script

$ ./script.sh

🎯 2. Cấu trúc cơ bản của Bash Script

2.1. Dòng khai báo shell (shebang)

Dòng đầu tiên (#!/bin/bash) cho biết script sẽ được thực thi bởi Bash.

#!/bin/bash

2.2. Biến trong Bash

2.2.1. Biến mặc định

  • Khai báo biến
name="Hoàng Minh"
age=25
  • Gọi biến
echo "Tên của tôi là $name và tôi $age tuổi."
  • Chú ý: Không có khoảng trắng xung quanh =.

2.2.2. Biến môi trường

echo "Tên người dùng: $USER"
echo "Thư mục hiện tại: $PWD"
echo "Shell đang dùng: $SHELL"

2.2.3. Biến từ đầu vào ($1, $2, ... "$@")

Lấy đối số từ dòng lệnh:

#!/bin/bash
echo "Tham số đầu tiên: $1"
echo "Tham số thứ hai: $2"
echo "Tất cả tham số: $@"

Chạy với đối số:

$ ./script.sh XinChao 2024

🔄 3. Cấu trúc điều kiện

3.1. Câu lệnh if-else

#!/bin/bash
read -p "Nhập số: " num
if [ $num -gt 10 ]; then
  echo "Số lớn hơn 10"
else
  echo "Số nhỏ hơn hoặc bằng 10"
fi

Toán tử so sánh:

Toán tử Ý nghĩa
-eq Bằng (==)
-ne Không bằng (!=)
-gt Lớn hơn (>)
-lt Nhỏ hơn (<)
-ge Lớn hơn hoặc bằng (>=)
-le Nhỏ hơn hoặc bằng (<=)

🔁 4. Vòng lặp

4.1. Vòng lặp for

#!/bin/bash
for i in {1..5}; do
  echo "Lần lặp: $i"
done

4.2. Vòng lặp while

#!/bin/bash
count=1
while [ $count -le 5 ]; do
  echo "Lần: $count"
  ((count++))
done

📂 5. Xử lý tệp và thư mục

5.1. Kiểm tra tệp/thư mục

#!/bin/bash
file="test.txt"

if [ -f "$file" ]; then
  echo "Tệp tồn tại!"
else
  echo "Tệp không tồn tại!"
fi
Toán tử Ý nghĩa
-f Kiểm tra tệp có tồn tại
-d Kiểm tra thư mục có tồn tại
-e Kiểm tra tệp hoặc thư mục có tồn tại

🎤 6. Nhập dữ liệu từ người dùng

#!/bin/bash
read -p "Nhập tên của bạn: " name
echo "Xin chào, $name!"

7. Hàm trong Bash

#!/bin/bash
say_hello() {
  echo "Xin chào, $1!"
}

say_hello "Minh"

8. Script chạy nền & lập lịch

8.1. Chạy script nền

$ ./script.sh &

8.2. Lập lịch với cron

Mở cron:

$ crontab -e

Thêm:

0 * * * * /path/to/script.sh  # Chạy mỗi giờ

📌 9. Một số lệnh hữu ích trong Bash

Lệnh Mô tả
date Hiển thị ngày giờ hiện tại
whoami Hiển thị user hiện tại
pwd Hiển thị thư mục hiện tại
ls Liệt kê thư mục
grep Tìm kiếm nội dung trong tệp
sed Chỉnh sửa dòng trong tệp
awk Xử lý văn bản theo cột

🎯 10. Ví dụ Script Thực Tế

10.1. Script sao lưu tệp

#!/bin/bash
src="/home/user/Documents"
dest="/home/user/backup_$(date +%Y%m%d).tar.gz"

tar -czf $dest $src
echo "Sao lưu xong: $dest"

10.2. Script kiểm tra kết nối mạng

#!/bin/bash
ping -c 1 google.com &> /dev/null

if [ $? -eq 0 ]; then
  echo "Mạng đang hoạt động!"
else
  echo "Mạng bị lỗi!"
fi

🎯 Tóm tắt

  1. Tạo script bằng cách viết tệp .sh.
  2. Cấp quyền thực thi bằng chmod +x.
  3. Sử dụng biến, vòng lặp, điều kiện trong script.
  4. Làm việc với tệp/thư mụcxử lý đầu vào từ người dùng.
  5. Tạo hàm và lập lịch tự động với cron.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí