shell编程实现用户循环输入
如果你想在Shell脚本中实现一个循环判断用户输入是否正确,并根据情况决定是否退出系统,可以使用一个无限循环(如
while true
)和条件语句来实现。
以下是一个示例代码,用于演示这种情况:
#!/bin/bash
echo "欢迎进入系统"
while true; do
echo "请输入选项:"
echo "1. 执行操作A"
echo "2. 执行操作B"
echo "3. 退出系统"
read choice
case $choice in
1)
echo "执行操作A"
# 这里可以写下执行操作A的代码
;;
2)
echo "执行操作B"
# 这里可以写下执行操作B的代码
;;
3)
echo "确认退出系统?(Y/N)"
read confirm
if [[ $confirm == "Y" || $confirm == "y" ]]; then
echo "正在退出系统..."
exit 0 # 正常退出,状态码为0
else
continue # 继续循环,回到上面的提示输入选项步骤
fi
;;
*)
echo "无效选项,请重新输入。"
continue # 继续循环,回到上面的提示输入选项步骤
;;
esac
# 执行完操作后继续循环,回到上面的提示输入选项步骤
done
# 如果需要,在此处添加其他代码...
举个例子
[root@master01 test]# cat mainMnue.sh
#!/bin/bash
function MainMenu() {
echo "欢迎进入系统"
while true; do
cat << EOF
1.打飞机自行解决
2.出钱和我干一炮
3.你长的太帅了,我自己脱裤子
4.鸡巴好长,操死我!
5.不忍直视,回家玩泥巴去吧你!
6.退出
EOF
read -p "Beautiful Gial, Please Enter Your Choice!" key
case $key in
1)
echo "打飞机自行解决"
;;
2)
echo "出钱和我干一炮"
;;
3)
echo "你长的太帅了,我自己脱裤子"
;;
4)
echo "鸡巴好长,操死我!"
;;
5)
echo "不忍直视,回家玩泥巴去吧你!"
;;
6)
read -p "您是否确认退出?[Y/N]" key2
if [[ "$key2" = "Y" || "$key2" = "y" ]];then
echo "正在退出系统..."
exit 0 # 正常退出,状态码为0
elif [[ "$key2" = "N" || "$key2" = "n" ]];then
continue # 继续循环,回到上面的提示输入选项步骤
else
exit 1 # 异常退出,状态码为非零值(通常为2)
fi
;;
*)
echo "您的输入有误,请重新运行脚本并选择正确的选项。"
exit 2 # 异常退出,状态码为非零值(通常为1)
;;
esac
done
}
MainMenu
shell编程实现用户循环输入的更多相关文章
- shell编程中用户输入处理(shell 04)
shell编程中用户输入处理1.命令行参数2.脚本运行时获取输入 命令行参数 通过空格来进行分割的位置参数 :$+position $0,$1,$2 ....$0 :程序名$1,$2,$3 ... $ ...
- shell编程基础(5)---循环指令
while类型的循环 while类型的循环是不定循环的一种,每一次循环都会验证给出的循环条件,判断是否要进行下一次循环.linux中while循环的写法和c语言中很想,但是条件给出的方式有些区别. 首 ...
- shell编程:for 循环
hell 编程——for in 循环 -------for in 格式------- for 无$变量 in 字符串 do $变量 done 一简单的字符串 枚举遍历法,利用for i ...
- Linux - 简明Shell编程13 - 用户输入(UserInput)
脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 1 - arguments #!/bin/bash i ...
- Shell编程基础教程3--Shell输入与输出
3.Shell输入与输出 3.1.echo echo命令可以显示文本行或变量,或者把字符串输出到文件 echo [option] string ...
- shell编程(四)之循环控制语句(for,while,until,break,continue,case)
for循环 语法:for NAME in LIST; do 循环体 done 列表生成方式:1.整数列表 {start...end} $(seq,[start [step]] end)2.glob / ...
- shell编程中的循环语句
while循环直接从文件中读取 while read line do command done < filename until循环 until 条件 do command done for循环 ...
- shell编程:for循环
有几个参数执行几次 do done取代了{} 这种用于 文件的个数,用户的个数等. (())里才可以进行加减乘除.
- shell编程:定义简单标准命令集
shell是用户操作接口的意思,操作系统运行起来后都会给用户提供一个操作界面,这个界面就叫shell,用户可以通过shell来调用操作系统内部的复杂实现,而shell编程就是在shell层次上进行编程 ...
- shell编程-1到100的求和与冒泡排序
Shell编程 一. for循环 生成列表 {起始数..结束数} 命令生成列表 `seq [起始数] [步进长度] 结束数 ` for l in {1..5};do for l in `seq ...
随机推荐
- evalFn 字符串转执行函数 附带JSONParse函数
const evalFn = (fn) => { var Fun = Function // 一个变量指向Function,防止前端编译工具报错 return new Fun('return ' ...
- 英语单词组件- 单词在句子中,上面显示中文下面显示音标 css样式
原先效果: 改进demo效果 优化点 音标长度超出,或者中文超出,总宽度会按照最长的走 居中显示 再次优化 line-height: 22px; 加入这个 对齐中间行(字号大小会让绝对上下高度,对不齐 ...
- 关于wine乱码问题的解决方法
在我的百度网盘里面,以及U盘备份,里面的Fonts.zip文件, 使用unzip Fonts.zip----linux指令 把这个文件夹里面的所有文件复制到wine的映射目录里面 cp Fonts/* ...
- RaspberryPi 树莓派 omxplayer 的音量设置方法实测有效!
正确的设置初始音量的方法,其中n/100=你期望的初始dB值, omxplayer --vol n target.media omxplayer介绍 omxplayer 在github中的描述是一个弃 ...
- KTL 一个支持C++14编辑公式的K线技术工具平台 - 第八版,数据解析。附带通达信gbbq解码。
K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...
- 几个常用的cmd命令
compmgmt.msc 计算机管理 devmgmt.msc 设备管理器 diskmgmt.msc 磁盘管理工具 dfrg.msc 磁盘碎片整理 eventvwr.msc 事件查看器 fsm ...
- dbvisualizer之编辑区中文乱码问题
!在SQL Commander中,sql语句中如果有中文,显示是'口口口'. 解决办法如下: 在Tools->tool Properties->General->Appearance ...
- Cesium渲染模块之Texture
1. 引言 Cesium是一款三维地球和地图可视化开源JavaScript库,使用WebGL来进行硬件加速图形,使用时不需要任何插件支持,基于Apache2.0许可的开源程序,可以免费用于商业和非商业 ...
- 探寻UUID的起源与奥秘:从时间戳到唯一标识
1. UUID起源与原理 UUID(Universally Unique Identifier)是一种唯一标识符,最初由Apollo计算机公司的软件工程师Roedy Green在1987年提出.其原理 ...
- 【Java】归并排序
代码: 1 public static void mergeSort(int[] arr) { 2 if (arr == null || arr.length < 2) { 3 return; ...