Files
Documentation/SH/enbatch_run.sh
2025-09-14 23:13:06 +07:00

48 lines
1.3 KiB
Bash

#!/usr/bin/env bash
# Kiểm tra có đối số không
if [ -z "$1" ]; then
echo "Usage: $(basename "$0") <courseid>"
exit 1
fi
courseid="$1"
# Lưu thư mục hiện tại (nơi chạy script, không phải nơi đặt script)
BASEDIR="$(pwd)"
for dir in */ ; do
# Bỏ dấu '/' cuối
dirname="${dir%/}"
# Cắt phần số trước dấu '.' và trim khoảng trắng
index=$(echo "$dirname" | cut -d'.' -f1 | tr -d '[:space:]')
# Bỏ số 0 đầu nếu có
index_nozero=$(echo "$index" | sed 's/^0*//')
# Nếu chuỗi rỗng (trường hợp '0')
if [ -z "$index_nozero" ]; then
index_nozero=0
fi
# Kiểm tra là số hợp lệ
if [[ "$index_nozero" =~ ^[0-9]+$ ]]; then
# Tính i-1
i_minus_1=$((index_nozero - 1))
echo "===> Đang xử lý thư mục: $dirname (index: $index_nozero, i-1: $i_minus_1)"
# Chuyển vào thư mục
cd "$dirname" || { echo "Không thể vào thư mục $dirname"; exit 1; }
# Gọi online.sh với courseid từ dòng lệnh và i-1
english.sh "$courseid" "$i_minus_1"
# Quay lại thư mục gốc
cd "$BASEDIR"
else
echo "Bỏ qua $dirname (không bắt đầu bằng số)"
fi
done