#!/bin/bash # 保存当前工作目录 original_dir=$(pwd) # 检查是否为root用户,若非则使用sudo重新执行脚本 if [[ $EUID -ne 0 ]]; then echo "检测到非root权限,正在通过sudo提升权限..." exec sudo -E bash -c "cd \"$original_dir\" && \"$0\"" fi # 确保切换到原目录(防止路径错误) cd "$original_dir" || { echo "无法切换至目录:$original_dir" exit 1 } # 启用nullglob以防止无匹配时的字面量输出 shopt -s nullglob deb_packages=( ./*.deb ) shopt -u nullglob echo "更新包管理器..." if [ -x "$(command -v oma)" ]; then sudo oma refresh elif [ -x "$(command -v apt)" ]; then sudo apt-get update elif [ -x "$(command -v yum)" ]; then sudo yum update fi echo "包管理器更新完毕" # 检查是否存在.deb文件 if [[ ${#deb_packages[@]} -eq 0 ]]; then echo "错误:当前目录下未找到任何.deb文件。" exit 1 fi echo "开始安装以下.deb包:" printf ' - %s\n' "${deb_packages[@]##*/}" # 仅显示文件名,去除路径 # 使用apt安装所有包(自动处理依赖) apt install --yes ./**.deb