shell脚本中使用select循环语句创建交互式菜单
xsobi 2025-04-26 22:14 10 浏览
在shell脚本中需要创建一个交互式菜单时,可以使用while语句或者select语句;不过两者存在区别,接下来,体验一下两个语句的不同之处;
使用while语句创建交互式菜单
#!/bin/bash
while true; do
echo "请选择操作:"
echo "1. 查看文件列表"
echo "2. 创建文件"
echo "3. 退出"
read -p "请输入选项:" choice
case $choice in
1)
ls
;;
2)
read -p "请输入文件名:" filename
touch $filename
echo "文件 $filename 已创建。"
;;
3)
echo "退出菜单。"
break
;;
*)
echo "无效的选择,请重新输入。"
;;
esac
done
while循环需要自己编写代码来显示菜单内容,然后通过读取用户输入的内容,使用if、case等语句判断用户的选择。
输出的显示,如下:
使用select语句创建交互式菜单
#!/bin/bash
PS3="请选择操作:"
select choice in "查看文件列表" "创建文件" "退出"; do
case $choice in
"查看文件列表")
ls
;;
"创建文件")
read -p "请输入文件名:" filename
touch $filename
echo "文件 $filename 已创建。"
;;
"退出")
echo "退出菜单。"
break
;;
*)
echo "无效的选择,请重新输入。"
;;
esac
done
select 循环乃是专为构建菜单而设,其能够自动对选项予以编号并予以呈现,并且还会自动处置用户输入的选项编号。您仅需提供选项清单,select 循环便可达成编号显示与输入处理的任务。
输出显示,如下:
综上所述,while循环和select循环在执行后显示的结果差不多,但是在创建菜单时各有优缺点,你可以根据具体的需求和场景选择合适的循环方式。
- while循环:适用于菜单选项需要动态生成,或者需要对用户输入进行复杂验证和处理的场景。因为while循环的灵活性更高,可以根据具体需求编写复杂的逻辑。
- select循环:适用于菜单选项相对固定,且希望代码简洁、用户交互方便的场景。它能快速创建一个简单易用的菜单。
相关推荐
- Y-3 2015 春季全新鞋款 Toggle Boost
-
运动时尚品牌Y-3今季可说是来势汹汹,继早前曝光的BoostQR、ResponseTRBoost和HayworthGuard三双鞋款之后,此番又带来另一双全新跑鞋ToggleBo...
- 优化分支冲突的关键策略
-
引言在团队协作开发中,有时候会出现多个人同时在一个代码仓库中进行开发。如果这时候采用了分支模式(而不是主干模式)的话,很容易造成分支合并冲突。这种冲突不仅会降低协作效率,同时会影响开发积极性。本文将介...
- From Mate70 to HarmonyOS NEXT: Huawei's pursuit of technological independence
-
byLuKeyanHuaweiofficiallylaunchedtheMate70seriesonNovember26,withpricesstartingat5,4...
- Flutter GetX 硬核分享:Rx 扩展方法实践指南
-
在当今Flutter众多的状态管理方案当中,GetX凭借着自身简洁且高效的响应式编程模型,赢得了广大开发者的热烈欢迎和高度认可。GetX的这种编程模型,不仅大大简化了代码的编写过程,降低了开发...
- 《巫师3:狂猎》全版本控制台代码全收录与进阶使用指南
-
【终极秘典】全版本控制台代码全收录与进阶使用指南(含DLC扩展/隐藏功能/跨平台适配方案)一、核心权限激活:跨平台控制台启动协议文件配置方案通用路径:PC端:\TheWitcher3Wild...
- 资深 UI 设计师搞定按钮和选框的14个秘诀
-
编剧导语:在UI界面中,我们可以看到各种开关按钮之类的组件,怎样更好的使用它们是一个值得思考的问题。这篇文章来自资深设计师TarasBakusevych,他在表单和控件设计领域造诣精深。这篇文章梳...
- 装13还是实用?400元如何买SSD固态硬盘
-
SSD固态硬盘以其有效提高电脑整体性能的特性,受到消费者亲睐。DIY玩家不在电脑装上一块SSD,都不好意思说电脑DIY。高端玩家有充足的预算,选择面大。工薪阶层、大学生装机,手里仅有400元,购买一块...
- 电气绘图常见元件符号汇总
-
根据工作经验,汇总了一些常见的电气符号,可以帮助电气从业人员绘图、识图等,有需求的朋友可以保存1符号英文全称中文名称示例**2RResistor电阻R1,R23CCapacitor电容C1,C24...
- “告别 Neovim!为什么我投奔了刚开源的 Zed 编辑器?”
-
Zed是一款专为团队协作设计的代码编辑器,由Atom编辑器的原作者主导开发。Zed的核心目标是为开发者提供一个高效、流畅、且直观的编程环境,特别强调实时协作和团队合作。该编辑器由Rust语...
- 一分钟了解一个汽车品牌:雪铁龙
-
雪铁龙,这个来自浪漫之都法国的汽车品牌,创立于1915年,至今已有百余年历史。它由安德烈·雪铁龙先生创立,车标以人字形齿轮为灵感,象征着品牌对技术与创新的执着追求。在发展历程中,雪铁龙始终秉持创新精...
- jquery1.9以上版本.toggle()的替代实现方法
-
像大多数前端开发者一样,青衿也经常会用到交互效果的往复切换,比如折叠面板的展开和折叠,动画效果的循环,点击效果的切换等等。刚刚接触jQuery的时候青衿都是使用.toggle()方法。jquery的....
- Google确认Windows 11上的Chrome Gemini将迎来重大AI升级
-
Google终于正式宣布计划在Windows11(以及Windows10)的Chrome浏览器中推出Gemini功能。我们之前一直在报道GeminiLive与GoogleCh...
- “一行代码让iPhone瞬间「变砖」!”发现iOS致命漏洞,开发者喜提12.7万元赏金
-
【CSDN编者按】一行看似普通的系统通知代码,居然能让一部iPhone反复重启、卡死在恢复界面、彻底“变砖”?在本篇文章中,作者展示了一个几乎无需交互的iOS漏洞利用方法——攻击者只需诱导用...
- 【2.UI元素】4.Toggle
-
4.Toggle4.1ToggleToggle(开关)是在开和关两个状态下切换,开是勾选了IsOn选项,关是不勾选IsOn选项。Toggle的构成如下图所示:其中:Background...
- 救命sos!这是谁发明的透明加密软件!没想到用起来这么方便!
-
公司里的重要文件满天飞,你却不知道哪个环节出了岔子,结果机密资料就这么“嗖”地一下飞到了竞争对手的邮箱里?哎呀,那可真叫人心急如焚,恨不得立马找个地缝钻进去!不过,今天我可要给大家安利一个超级神器——...
- 一周热门
- 最近发表
- 标签列表
-
- grid 设置 (58)
- 移位运算 (48)
- not specified (45)
- 导航栏 (58)
- context xml (46)
- scroll (43)
- dedecms模版 (53)
- c 视频教程下载 (33)
- listview排序 (33)
- characterencodingfilter (33)
- getmonth (34)
- label换行 (33)
- android studio 3 0 (34)
- html转js (35)
- 索引的作用 (33)
- checkedlistbox (34)
- xmlhttp (35)
- mysql更改密码 (34)
- 权限777 (33)
- htmlposition (33)
- 学校网站模板 (34)
- textarea换行 (34)
- 轮播 (34)
- asp net三层架构 (38)
- bash (34)