为Mac OSX 12.6+编写带单选菜单的Bash脚本求助
适配Mac OSX 12.6+的Bash单选菜单脚本
Mac OSX自带的Bash完全支持select语法,你找到的Linux脚本只需要做少量调整就能在Mac上正常运行。下面是适配后的版本,支持4个脚本单选执行:
#!/bin/bash # 定义要执行的脚本路径,方便后续修改 SCRIPT1_PATH="/Users/USERNAME/Desktop/Script1.sh" SCRIPT2_PATH="/Users/USERNAME/Desktop/Script2.sh" SCRIPT3_PATH="/Users/USERNAME/Desktop/Script3.sh" SCRIPT4_PATH="/Users/USERNAME/Desktop/Script4.sh" PS3="请选择要执行的脚本: " select scpt in "脚本1" "脚本2" "脚本3" "脚本4" "退出" do case $scpt in "脚本1") echo "正在执行脚本1..." bash "$SCRIPT1_PATH" ;; "脚本2") echo "正在执行脚本2..." bash "$SCRIPT2_PATH" ;; "脚本3") echo "正在执行脚本3..." bash "$SCRIPT3_PATH" ;; "脚本4") echo "正在执行脚本4..." bash "$SCRIPT4_PATH" ;; "退出") echo "操作结束" break ;; *) echo "无效选项,请重新选择" ;; esac done
关键调整说明
- 将脚本路径单独定义为变量,后续修改更便捷,无需重复修改多处
- 移除了原脚本中多余的
echo | 脚本管道写法,直接调用bash执行目标脚本(若目标脚本已添加可执行权限,也可直接写"$SCRIPT1_PATH") - 补充第4个脚本选项,满足你需要4个脚本的需求
- 菜单文字改为中文,适配使用习惯(可自行改回英文)
使用注意事项
- 替换路径中的
USERNAME为你的Mac用户名,或直接填写脚本的绝对路径 - 给每个目标脚本添加可执行权限:
chmod +x /Users/USERNAME/Desktop/ScriptX.sh(X对应脚本编号) - 保存当前脚本为
menu_script.sh,同样添加执行权限:chmod +x menu_script.sh - 在终端运行:
./menu_script.sh即可唤起菜单
该脚本在Mac OSX 12.6+及升级至13.0+后均可正常运行,Bash的select和case语法属于跨平台特性,Mac自带的Bash版本完全支持。
内容的提问来源于stack exchange,提问作者David Bowyer
相关产品推荐
相关产品推荐

