Bash

Bash Scripting Basics - Viết script tự động hóa

Học cách viết bash script để tự động hóa các tác vụ trong Linux/Unix. Hướng dẫn từ cơ bản đến nâng cao.

👁️ ---
Ads Disabled

Giới thiệu về Bash Scripting

Bash (Bourne Again Shell) là shell phổ biến nhất trong các hệ điều hành Linux/Unix. Bash scripting cho phép bạn tự động hóa các tác vụ lặp đi lặp lại.

Script đầu tiên

Tạo file hello.sh:

#!/bin/bash
echo "Hello, World!"

Chạy script:

chmod +x hello.sh
./hello.sh

Biến (Variables)

Khai báo và sử dụng biến

#!/bin/bash

# Khai báo biến
name="John"
age=25

# Sử dụng biến
echo "My name is $name"
echo "I am $age years old"

Biến môi trường

#!/bin/bash

echo "Home directory: $HOME"
echo "Current user: $USER"
echo "Current path: $PATH"

Nhận input từ user

#!/bin/bash

echo "What is your name?"
read username

echo "Hello, $username!"

Tham số dòng lệnh

#!/bin/bash

echo "Script name: $0"
echo "First argument: $1"
echo "Second argument: $2"
echo "All arguments: $@"
echo "Number of arguments: $#"

Chạy:

./script.sh arg1 arg2 arg3

Câu lệnh điều kiện

If-else

#!/bin/bash

age=20

if [ $age -ge 18 ]; then
    echo "You are an adult"
else
    echo "You are a minor"
fi

So sánh chuỗi

#!/bin/bash

name="John"

if [ "$name" = "John" ]; then
    echo "Hello John!"
else
    echo "You are not John"
fi

Vòng lặp

For loop

#!/bin/bash

# Loop qua danh sách
for i in 1 2 3 4 5; do
    echo "Number: $i"
done

# Loop qua files
for file in *.txt; do
    echo "Processing $file"
done

While loop

#!/bin/bash

counter=1

while [ $counter -le 5 ]; do
    echo "Counter: $counter"
    ((counter++))
done

Functions

#!/bin/bash

# Định nghĩa function
greet() {
    local name=$1
    echo "Hello, $name!"
}

# Gọi function
greet "John"
greet "Jane"

Ví dụ thực tế: Backup script

#!/bin/bash

# Script backup tự động
SOURCE_DIR="/home/user/documents"
BACKUP_DIR="/home/user/backups"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="backup_$DATE.tar.gz"

echo "Starting backup..."

# Tạo thư mục backup nếu chưa tồn tại
mkdir -p "$BACKUP_DIR"

# Nén và backup
tar -czf "$BACKUP_DIR/$BACKUP_FILE" "$SOURCE_DIR"

if [ $? -eq 0 ]; then
    echo "Backup completed successfully: $BACKUP_FILE"
else
    echo "Backup failed!"
    exit 1
fi

# Xóa backup cũ hơn 7 ngày
find "$BACKUP_DIR" -name "backup_*.tar.gz" -mtime +7 -delete

echo "Old backups cleaned up"

Exit codes

#!/bin/bash

# Kiểm tra file tồn tại
if [ -f "/path/to/file" ]; then
    echo "File exists"
    exit 0  # Success
else
    echo "File does not exist"
    exit 1  # Error
fi

Các toán tử hữu ích

File test operators

| Operator | Ý nghĩa | |----------|---------| | -f | File tồn tại và là regular file | | -d | Directory tồn tại | | -r | File có quyền đọc | | -w | File có quyền ghi | | -x | File có quyền thực thi |

Số học operators

#!/bin/bash

a=10
b=5

echo "Addition: $((a + b))"
echo "Subtraction: $((a - b))"
echo "Multiplication: $((a * b))"
echo "Division: $((a / b))"

Best practices

  1. Luôn sử dụng shebang: #!/bin/bash
  2. Quote biến: "$variable" thay vì $variable
  3. Kiểm tra lỗi: Sử dụng $? để kiểm tra exit code
  4. Comment code: Giải thích các đoạn code phức tạp
  5. Sử dụng meaningful names: Đặt tên biến và function rõ ràng

Kết luận

Bash scripting là kỹ năng quan trọng cho bất kỳ ai làm việc với Linux/Unix. Bắt đầu với những script đơn giản và dần dần xây dựng các script phức tạp hơn để tự động hóa công việc của bạn.

Ads Disabled
👨‍💻

Hoank 🚀

✍️ Author

💜 Lập trình viênblogger đam mê chia sẻ kiến thức về lập trình, công nghệ và kinh nghiệm thực tế. Mình viết về JavaScript, React, Next.js, SQL và nhiều chủ đề thú vị khác.
"Học mỗi ngày, chia sẻ mỗi ngày" ✨

Thảo luận (0)

Đang tải bình luận...