Files
Documentation/Moodle/PHP/batch_run.sh
2025-08-20 09:47:42 +07:00

63 lines
1.5 KiB
Bash

#!/usr/bin/env bash
# Kiểm tra có đối số không
if [ -z "$1" ] || [ -z "$2" ]; then
echo "Usage: $(basename "$0") <arg1> <arg2>"
exit 1
fi
siteid=$1
courseid=$2
# 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
case "$siteid" in
1)
online.sh "$courseid" "$i_minus_1"
;;
2)
elearning.sh "$courseid" "$i_minus_1"
;;
3)
english.sh "$courseid" "$i_minus_1"
;;
*)
echo "Không hỗ trợ siteid=$siteid"
exit 1
;;
esac
# 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