hysteria_docker/bin/utils/base.sh
2025-12-09 16:35:04 +08:00

70 lines
1.4 KiB
Bash

#!/bin/bash
red(){
echo -e "\033[31m$1\033[0m"
}
# 获取系统包管理器
get_package_manager(){
if command -v apt-get &> /dev/null; then
echo "apt-get"
elif command -v yum &> /dev/null; then
echo "yum"
else
echo "未知的系统包管理器"
return 1 # 返回错误状态码
fi
}
# 检查 jq 是否已安装
check_jq(){
if command -v jq &> /dev/null; then
return 0 # jq 已安装,返回成功
fi
echo "jq 未安装,正在安装..."
install_package jq
}
# 检查 Bash 是否已安装
check_bash_installed() {
if ! command -v bash &> /dev/null; then
echo "错误: Bash 未安装!"
return 1
fi
}
# 动态安装软件包
install_package() {
local package_name=$1
if command -v "$package_name" &> /dev/null; then
echo "$package_name 已安装, 跳过."
return 0
fi
echo "安装 $package_name..."
package_manager=$(get_package_manager)
if [ "$package_manager" == "apt-get" ]; then
sudo apt-get update
sudo apt-get install -y "$package_name"
elif [ "$package_manager" == "yum" ]; then
sudo yum install -y "$package_name"
else
echo "未知的包管理器, 请手动安装 $package_name."
return 1
fi
}
# 生成密码
gen_password() {
local pass_length=$1 # 密码长度作为第一个参数
local chars='[:alnum:]' # 只允许出现字母和数字
local rand
rand=$(< /dev/urandom tr -dc "$chars" | head -c "$pass_length")
echo "$rand"
}