增加 read_required 函数:管道模式下必填参数必须通过环境变量提供
- 新增 read_required(): 交互模式下反复提示直到输入非空值 - 管道模式下必填参数未环境变量提供时,报错并引导下载后交互执行 - FRPS_ADDR 改为必填,其余端口保持默认值 - 避免 curl | bash 静默跳过导致配置不完整
This commit is contained in:
+31
-3
@@ -13,7 +13,35 @@ log_warn() { echo -e "${YELLOW}[WARN]${PLAIN} $1"; }
|
|||||||
log_error() { echo -e "${RED}[ERROR]${PLAIN} $1"; }
|
log_error() { echo -e "${RED}[ERROR]${PLAIN} $1"; }
|
||||||
log_step() { echo -e "\n${BLUE}[${1}]${PLAIN} ${2}"; }
|
log_step() { echo -e "\n${BLUE}[${1}]${PLAIN} ${2}"; }
|
||||||
|
|
||||||
# 交互式读取或自动使用默认值(管道模式下静默使用默认值)
|
# 交互式读取,必须提供非空值;管道模式下要求环境变量
|
||||||
|
read_required() {
|
||||||
|
local prompt_msg="$1"
|
||||||
|
local var_name="$2"
|
||||||
|
|
||||||
|
if [ -t 0 ]; then
|
||||||
|
local val
|
||||||
|
while true; do
|
||||||
|
read -p "$prompt_msg" val
|
||||||
|
if [ -n "$val" ]; then
|
||||||
|
echo "$val"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
echo -e "${RED}此项为必填,请输入!${PLAIN}"
|
||||||
|
done
|
||||||
|
else
|
||||||
|
# 管道模式:从环境变量取,没有则报错提示改为交互式执行
|
||||||
|
local env_val="${!var_name}"
|
||||||
|
if [ -n "$env_val" ]; then
|
||||||
|
echo "$env_val"
|
||||||
|
else
|
||||||
|
log_error "管道模式下参数 $var_name 未通过环境变量提供"
|
||||||
|
log_error "请改为交互式执行: curl -sSL -o hwaishell.sh <url> && bash hwaishell.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# 交互式读取,有默认值可选
|
||||||
read_or_default() {
|
read_or_default() {
|
||||||
local prompt_msg="$1"
|
local prompt_msg="$1"
|
||||||
local default_value="$2"
|
local default_value="$2"
|
||||||
@@ -217,8 +245,8 @@ fi
|
|||||||
# ================= 配置网关与 frpc 代理参数 =================
|
# ================= 配置网关与 frpc 代理参数 =================
|
||||||
log_step "2/5" "配置 frpc 连接与网关端口参数:"
|
log_step "2/5" "配置 frpc 连接与网关端口参数:"
|
||||||
|
|
||||||
# frps 服务器连接信息
|
# frps 服务器连接信息(必填)
|
||||||
FRPS_ADDR="${FRPS_ADDR:-$(read_or_default "请输入 frps 服务器地址 (例: 1.2.3.4): " "")}"
|
FRPS_ADDR="${FRPS_ADDR:-$(read_required "请输入 frps 服务器地址 (例: 1.2.3.4): " "FRPS_ADDR")}"
|
||||||
FRPS_PORT="${FRPS_PORT:-$(read_or_default "请输入 frps 服务器端口 (默认 7000): " "7000")}"
|
FRPS_PORT="${FRPS_PORT:-$(read_or_default "请输入 frps 服务器端口 (默认 7000): " "7000")}"
|
||||||
FRPS_TOKEN="${FRPS_TOKEN:-$(read_or_default "请输入 frps 认证 token (默认留空): " "")}"
|
FRPS_TOKEN="${FRPS_TOKEN:-$(read_or_default "请输入 frps 认证 token (默认留空): " "")}"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user