1. Giới thiệu
Bash Script là một công cụ mạnh mẽ để tự động hóa các tác vụ trên hệ điều hành Linux. Với Bash, bạn có thể thực hiện từ các lệnh cơ bản đến các tác vụ phức tạp chỉ bằng cách viết mã trong một file kịch bản (script).
Bài viết này sẽ hướng dẫn bạn cách bắt đầu với Bash Script, từ cú pháp cơ bản, ví dụ thực tế đến các mẹo tối ưu.
2. Bash Script là gì?
Bash Script là tập hợp các lệnh Linux được viết trong một file và thực thi tuần tự như một chương trình.
Lợi ích của Bash Script:
- Tự động hóa: Giúp tiết kiệm thời gian cho các tác vụ lặp đi lặp lại.
- Đơn giản: Không cần cài đặt thêm phần mềm, chỉ cần Bash.
- Linh hoạt: Hỗ trợ từ các lệnh đơn giản đến logic phức tạp với điều kiện và vòng lặp.
3. Cách viết và chạy Bash Script
Bước 1: Tạo file Bash Script
Tạo một file script với phần mở rộng .sh
:
touch myscript.sh
Bước 2: Thêm nội dung script
Mở file với trình soạn thảo và thêm các dòng lệnh:
#!/bin/bash echo "Hello, Bash Script!"
Lưu ý: Dòng đầu tiên #!/bin/bash
là shebang, giúp hệ thống nhận biết trình thông dịch cần sử dụng.
Bước 3: Gán quyền thực thi
Cấp quyền thực thi cho file script:
chmod +x myscript.sh
Bước 4: Chạy script
Chạy script bằng lệnh:
./myscript.sh hoặc sh myscript.sh
4. Các khái niệm cơ bản trong Bash Script
4.1. Biến
Biến trong Bash được khai báo và sử dụng như sau:
NAME="Superman" echo "Xin chào, $NAME"
4.2. Điều kiện (if-else)
#!/bin/bash AGE=18 if [ $AGE -ge 18 ]; then echo "Bạn đã đủ tuổi trưởng thành." else echo "Bạn chưa đủ tuổi trưởng thành." fi
4.3. Vòng lặp
- For loop:
for i in 1 2 3 4 5; do echo "Số: $i" done
- While loop:
COUNT=1 while [ $COUNT -le 5 ]; do echo "Lần lặp: $COUNT" ((COUNT++)) done
4.4. Hàm
function greet() { echo "Hello, $1!" } greet "Alice"
5. Ví dụ thực tế về Bash Script
5.1. Tạo backup tự động
#!/bin/bash SOURCE="/path/to/source" DEST="/path/to/destination" tar -czf $DEST/backup_$(date +%F).tar.gz $SOURCE echo "Backup hoàn thành!"
5.2. Kiểm tra trạng thái dịch vụ
#!/bin/bash SERVICE="nginx" if systemctl is-active --quiet $SERVICE; then echo "$SERVICE đang chạy." else echo "$SERVICE không hoạt động." fi
5.3. Xóa file cũ hơn 7 ngày
#!/bin/bash find /path/to/files -type f -mtime +7 -exec rm {} \; echo "Đã xóa các file cũ hơn 7 ngày."
6. Các mẹo tối ưu khi viết Bash Script
- Kiểm tra lỗi:
- Sử dụng
set -e
để dừng script khi có lỗi xảy ra.
set -e
- Ghi log:
- Ghi log để theo dõi hoạt động của script.
echo "Đang chạy script..." >> script.log
- Kiểm tra tham số:
- Đảm bảo script nhận đúng tham số đầu vào:
if [ -z "$1" ]; then echo "Vui lòng cung cấp tên file!" exit 1 fi
7. Kết luận
Bash Script là một công cụ không thể thiếu cho các quản trị viên hệ thống và lập trình viên khi làm việc trên Linux. Với khả năng tự động hóa và linh hoạt, bạn có thể giải quyết nhiều vấn đề một cách nhanh chóng và hiệu quả.
Hãy bắt đầu viết Bash Script đầu tiên của bạn ngay hôm nay!