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
- Luôn sử dụng shebang:
#!/bin/bash - Quote biến:
"$variable"thay vì$variable - Kiểm tra lỗi: Sử dụng
$?để kiểm tra exit code - Comment code: Giải thích các đoạn code phức tạp
- 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
Thảo luận (0)
Đang tải bình luận...