Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Nếu bạn gõ cùng một chuỗi lệnh lần thứ ba, đó là dấu hiệu nên viết script. Bash có sẵn trên hầu hết máy chủ Linux và macOS nên bạn không cần cài gì thêm. Bài này giới thiệu các thành phần cốt lõi để viết script đáng tin cậy.
Tạo file hello.sh:
#!/bin/bash
TEN="Cuong"
echo "Xin chao, $TEN"Dòng đầu (#!/bin/bash, gọi là shebang) cho hệ thống biết dùng chương trình nào để chạy. Cấp quyền chạy và thực thi:
chmod +x hello.sh
./hello.shLưu ý: khi gán biến không được có khoảng trắng quanh dấu bằng (TEN="Cuong", không phải TEN = "Cuong"). Khi dùng giá trị, thêm dấu $ và nên đặt trong ngoặc kép.
set -euo pipefail-e: dừng script ngay khi một lệnh lỗi.-u: báo lỗi khi dùng biến chưa khai báo, tránh các lỗi kiểu xóa nhầm đường dẫn rỗng.-o pipefail: một pipeline bị coi là lỗi nếu bất kỳ lệnh nào trong đó lỗi.#!/bin/bash
set -euo pipefail
if [ "$#" -lt 1 ]; then
echo "Cach dung: $0 <thu-muc>"
exit 1
fi
THUMUC="$1"
echo "Se xu ly: $THUMUC"$1, $2 là các tham số, $# là số lượng tham số, $0 là tên script. Luôn kiểm tra đầu vào rồi mới làm việc.
if [ -f "$FILE" ]; then
echo "File ton tai"
elif [ -d "$FILE" ]; then
echo "Day la thu muc"
else
echo "Khong tim thay"
fiCác toán tử hay dùng: -f (là file), -d (là thư mục), -z (chuỗi rỗng), -eq và -lt (so sánh số), == (so sánh chuỗi). Chú ý có khoảng trắng bên trong dấu ngoặc vuông.
for f in *.log; do
gzip "$f"
done
while read -r dong; do
echo "Doc: $dong"
done < danh-sach.txtVòng for nén từng file log, vòng while read đọc file theo từng dòng. Việc đặt biến trong ngoặc kép giúp xử lý đúng tên file có khoảng trắng.
ghi_log() {
echo "[$(date '+%F %T')] $1"
}
ghi_log "Bat dau sao luu"
if ! tar -czf backup.tar.gz ./du-an; then
ghi_log "Sao luu that bai"
exit 1
fi
ghi_log "Hoan tat"Hàm giúp tái sử dụng đoạn mã và làm script dễ đọc. Mã thoát 0 nghĩa là thành công, khác 0 là lỗi; các công cụ CI và cron dựa vào đây để biết tác vụ có thành công không.
"$bien".Bash không đẹp, nhưng nó có mặt ở mọi nơi và rất hợp để kết dính các lệnh nhỏ thành quy trình hoàn chỉnh. Hãy chọn một việc bạn hay làm tay mỗi tuần và biến nó thành script, đó là cách học nhanh nhất.
Nếu bạn muốn luyện thêm kỹ năng tự động hóa và vận hành trong dự án thật, hãy tham khảo thêm tại codebem.com.
Nguyễn Đình Cường
0 comment