菜单无效输入检查:编写循环脚本(输入1-5,输入5终止,禁用exit命令)
实现循环输入校验的脚本方案
没问题,我来帮你搞定这个需求!下面是一个bash脚本的示例,完全符合你的要求——持续循环直到用户输入5、不使用exit命令、包含输入校验:
#!/bin/bash while true; do # 提示用户输入数字 read -p "请输入1-5之间的数字: " user_input # 校验输入格式并处理逻辑 if [[ "$user_input" =~ ^[1-5]$ ]]; then if [ "$user_input" -eq 5 ]; then echo "你输入了5,脚本即将结束。" break # 用break跳出循环,替代exit命令 else echo "你选择了数字 $user_input" # 这里可以添加对应数字的自定义处理代码,比如执行不同的操作 fi else echo "invalid input" fi done
关键逻辑说明:
- 无限循环:用
while true开启持续循环,只有当用户输入5时才通过break跳出,完全避开exit命令。 - 输入校验:
[[ "$user_input" =~ ^[1-5]$ ]]用正则表达式确保输入是单个1-5的数字,避免用户输入多位数、字母或其他非法内容。 - 分支处理:
- 输入5时,提示后执行
break终止循环; - 输入1-4时,可在对应分支添加你需要的业务逻辑;
- 非法输入直接输出"invalid input",循环继续等待下一次输入。
- 输入5时,提示后执行
如果你用的是其他shell(比如zsh),逻辑完全通用,只需要确保正则表达式的写法符合对应shell的规则即可。
内容的提问来源于stack exchange,提问作者andrew16
相关产品推荐
相关产品推荐

