Compare commits

1 Commits
v1.0 ... main

Author SHA1 Message Date
nfgj
51c23b4cca 修复交互 2026-08-10 20:47:39 +00:00

23
main.sh
View File

@@ -21,6 +21,17 @@ log_info() { echo -e "${GREEN}[INFO]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; } log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
log_error() { echo -e "${RED}[ERROR]${NC} $1" >&2; exit 1; } log_error() { echo -e "${RED}[ERROR]${NC} $1" >&2; exit 1; }
# 从终端读取用户输入(兼容 curl | bash 管道执行)
tty_read() {
local prompt="$1" varname="$2"
if [ -r /dev/tty ]; then
echo -ne "$prompt" > /dev/tty
read -r "$varname" < /dev/tty
else
log_error "无法打开终端 /dev/tty请确认在交互式终端中运行"
fi
}
# ============================================ # ============================================
# 用户配置变量(按需修改) # 用户配置变量(按需修改)
# ============================================ # ============================================
@@ -70,7 +81,7 @@ uninstall_easytier() {
echo " 3. 删除安装目录: $EASYTIER_DIR" echo " 3. 删除安装目录: $EASYTIER_DIR"
echo " 4. 删除下载的 ZIP 文件" echo " 4. 删除下载的 ZIP 文件"
echo "" echo ""
read -p "确认卸载?此操作不可恢复 [y/N]: " CONFIRM_UNINSTALL tty_read "确认卸载?此操作不可恢复 [y/N]: " CONFIRM_UNINSTALL
if [[ ! "$CONFIRM_UNINSTALL" =~ ^[Yy]$ ]]; then if [[ ! "$CONFIRM_UNINSTALL" =~ ^[Yy]$ ]]; then
log_info "已取消卸载" log_info "已取消卸载"
exit 0 exit 0
@@ -118,7 +129,7 @@ echo -e " ${GREEN}1.${NC} 部署为 ${GREEN}服务端${NC}"
echo -e " ${YELLOW}2.${NC} 部署为 ${YELLOW}客户端${NC}" echo -e " ${YELLOW}2.${NC} 部署为 ${YELLOW}客户端${NC}"
echo -e " ${RED}3.${NC} ${RED}卸载 Easytier${NC}" echo -e " ${RED}3.${NC} ${RED}卸载 Easytier${NC}"
echo "" echo ""
read -p "请选择 [1/2/3]: " MODE tty_read "请选择 [1/2/3]: " MODE
case "$MODE" in case "$MODE" in
3) 3)
@@ -127,18 +138,18 @@ case "$MODE" in
1) 1)
ROLE="server" ROLE="server"
# 服务端虚拟 IP # 服务端虚拟 IP
read -p "请输入服务端虚拟 IP [10.126.5.1]: " VIRTUAL_IP tty_read "请输入服务端虚拟 IP [10.126.5.1]: " VIRTUAL_IP
VIRTUAL_IP="${VIRTUAL_IP:-10.126.5.1}" VIRTUAL_IP="${VIRTUAL_IP:-10.126.5.1}"
HOSTNAME=$(hostname) HOSTNAME=$(hostname)
;; ;;
2) 2)
ROLE="client" ROLE="client"
# 客户端需要知道服务端信息 # 客户端需要知道服务端信息
read -p "请输入服务器公网 IP: " SERVER_PUBLIC_IP tty_read "请输入服务器公网 IP: " SERVER_PUBLIC_IP
if [ -z "$SERVER_PUBLIC_IP" ]; then if [ -z "$SERVER_PUBLIC_IP" ]; then
log_error "服务器公网 IP 不能为空" log_error "服务器公网 IP 不能为空"
fi fi
read -p "请输入服务端虚拟 IP [10.126.5.1]: " SERVER_VIRTUAL_IP tty_read "请输入服务端虚拟 IP [10.126.5.1]: " SERVER_VIRTUAL_IP
SERVER_VIRTUAL_IP="${SERVER_VIRTUAL_IP:-10.126.5.1}" SERVER_VIRTUAL_IP="${SERVER_VIRTUAL_IP:-10.126.5.1}"
VIRTUAL_IP="dhcp" VIRTUAL_IP="dhcp"
HOSTNAME=$(hostname) HOSTNAME=$(hostname)
@@ -178,7 +189,7 @@ else
fi fi
echo " 网络名称: $NETWORK_NAME" echo " 网络名称: $NETWORK_NAME"
echo -e "${CYAN}==========================================${NC}" echo -e "${CYAN}==========================================${NC}"
read -p "确认以上信息?[Y/n]: " CONFIRM tty_read "确认以上信息?[Y/n]: " CONFIRM
CONFIRM="${CONFIRM:-Y}" CONFIRM="${CONFIRM:-Y}"
if [[ ! "$CONFIRM" =~ ^[Yy]$ ]]; then if [[ ! "$CONFIRM" =~ ^[Yy]$ ]]; then
exec bash "$0" exec bash "$0"