问题描述: - 显示了选择菜单,但read命令直接跳过 - 无法输入选择,直接使用默认值1 - 用户想选择2也无法输入 原因分析: - update流程中标准输入可能被重定向或被其他命令消耗 - read命令从stdin读取时可能读到空输入 - 导致直接使用默认值 解决方案: 使用 `< /dev/tty` 强制从终端读取: ```bash read -p "▶ 请选择 [1/2, 默认:1]: " KEEP_UPLOAD_TOOL < /dev/tty ``` 工作原理: - /dev/tty: 当前终端设备 - < /dev/tty: 强制从终端读取输入 - 即使stdin被重定向,仍能从终端获取用户输入 测试建议: 运行 bash install.sh update 时: 1. 显示选择菜单 2. 等待用户输入 3. 输入1: 保留工具 4. 输入2: 重新下载 5. 直接回车: 使用默认值1 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
150 KiB
150 KiB