diff --git a/scripts/deploy/1-check-env/check_env.sh b/scripts/deploy/1-check-env/check_env.sh index e848cfcdd308be2f2406e75393d044d81a13b5b3..da11e195344e7668e96c2d96e9d6ad71b5549d2f 100644 --- a/scripts/deploy/1-check-env/check_env.sh +++ b/scripts/deploy/1-check-env/check_env.sh @@ -14,22 +14,25 @@ get_el_version() { # 首先检查是否为 openEuler 系统 if [ -f "/etc/openEuler-release" ]; then local openeuler_version - openeuler_version=$(grep -oP 'openEuler release \K[0-9]+\.[0-9]+' /etc/openEuler-release) + openeuler_version=$(grep -Eo 'openEuler release [0-9]+\.[0-9]+' /etc/openEuler-release | awk '{print $3}' | tail -n 1) if [ -n "$openeuler_version" ]; then # 将版本号转换为可比较的数字格式(如 22.03 -> 2203) local major minor major=$(echo "$openeuler_version" | cut -d'.' -f1) minor=$(echo "$openeuler_version" | cut -d'.' -f2) - local version_num=$((major * 100 + minor)) - # openEuler 22.03 及之前使用 el8,24.03 及之后使用 el9 - if [ $version_num -le 2203 ]; then - echo "8" - return 0 - else - echo "9" - return 0 + if [[ "$major" =~ ^[0-9]+$ && "$minor" =~ ^[0-9]+$ ]]; then + local version_num=$((10#$major * 100 + 10#$minor)) + + # openEuler 22.03 及之前使用 el8,24.03 及之后使用 el9 + if [ $version_num -le 2203 ]; then + echo "8" + return 0 + else + echo "9" + return 0 + fi fi fi fi @@ -43,14 +46,22 @@ get_el_version() { local major minor major=$(echo "$kernel_version" | cut -d'.' -f1) minor=$(echo "$kernel_version" | cut -d'.' -f2) - local version_num=$((major * 100 + minor)) - # 内核版本 < 5.14 使用 el8,>= 5.14 使用 el9 - if [ $version_num -lt 514 ]; then - echo "8" - else - echo "9" + if [[ "$major" =~ ^[0-9]+$ && "$minor" =~ ^[0-9]+$ ]]; then + local version_num=$((10#$major * 100 + 10#$minor)) + + # 内核版本 < 5.14 使用 el8,>= 5.14 使用 el9 + if [ $version_num -lt 514 ]; then + echo "8" + return 0 + else + echo "9" + return 0 + fi fi + + echo -e "${COLOR_ERROR}[Error] 无法确定兼容的 el 版本,请检查系统信息${COLOR_RESET}" >&2 + return 1 } # 安装wget工具 diff --git a/scripts/deploy/2-install-dependency/install_openEulerIntelligence.sh b/scripts/deploy/2-install-dependency/install_openEulerIntelligence.sh index e2eaf1e0ce546eef98eb01c8a08399197ef28f9a..c6e881667cc5f4a9acf22b4a3eed494292481fad 100644 --- a/scripts/deploy/2-install-dependency/install_openEulerIntelligence.sh +++ b/scripts/deploy/2-install-dependency/install_openEulerIntelligence.sh @@ -18,22 +18,25 @@ get_el_version() { # 首先检查是否为 openEuler 系统 if [ -f "/etc/openEuler-release" ]; then local openeuler_version - openeuler_version=$(grep -oP 'openEuler release \K[0-9]+\.[0-9]+' /etc/openEuler-release) + openeuler_version=$(grep -Eo 'openEuler release [0-9]+\.[0-9]+' /etc/openEuler-release | awk '{print $3}' | tail -n 1) if [ -n "$openeuler_version" ]; then # 将版本号转换为可比较的数字格式(如 22.03 -> 2203) local major minor major=$(echo "$openeuler_version" | cut -d'.' -f1) minor=$(echo "$openeuler_version" | cut -d'.' -f2) - local version_num=$((major * 100 + minor)) - # openEuler 22.03 及之前使用 el8,24.03 及之后使用 el9 - if [ $version_num -le 2203 ]; then - echo "8" - return 0 - else - echo "9" - return 0 + if [[ "$major" =~ ^[0-9]+$ && "$minor" =~ ^[0-9]+$ ]]; then + local version_num=$((10#$major * 100 + 10#$minor)) + + # openEuler 22.03 及之前使用 el8,24.03 及之后使用 el9 + if [ $version_num -le 2203 ]; then + echo "8" + return 0 + else + echo "9" + return 0 + fi fi fi fi @@ -47,14 +50,22 @@ get_el_version() { local major minor major=$(echo "$kernel_version" | cut -d'.' -f1) minor=$(echo "$kernel_version" | cut -d'.' -f2) - local version_num=$((major * 100 + minor)) - # 内核版本 < 5.14 使用 el8,>= 5.14 使用 el9 - if [ $version_num -lt 514 ]; then - echo "8" - else - echo "9" + if [[ "$major" =~ ^[0-9]+$ && "$minor" =~ ^[0-9]+$ ]]; then + local version_num=$((10#$major * 100 + 10#$minor)) + + # 内核版本 < 5.14 使用 el8,>= 5.14 使用 el9 + if [ $version_num -lt 514 ]; then + echo "8" + return 0 + else + echo "9" + return 0 + fi fi + + echo -e "${COLOR_ERROR}[Error] 无法确定兼容的 el 版本,请检查系统信息${COLOR_RESET}" >&2 + return 1 } # 初始化本地仓库