1.5.1 基础实践
学习目标
这一节,我们从 基础知识、简单实践、小结 三个方面来学习。
基础知识
简介
select和其他循环控制不一样,它一般用来增强交互性,它可以显示出带编号的菜单,用户输入不同的编号就可以选择不同的菜单,并执行不同的功能。
虽然select本身就是循环,但是select的循环仅限于接收列表中的输入信息,所以在生产中,我们一般将Select 搭配 case来使用,从而实现更为复杂的菜单控制选项。
select 表达式是一种bash的扩展应用,动作包括:
自动用1,2,3,4列出菜单 ( 没有echo指令,自动显示菜单)
自动read输入选择 ( 没有 read指令,自动输入)
赋值给变量 ( 没有赋值指令,自动输入数字后,赋值字符串给变量)
语法解读
select 变量名 in input_list
do
循环语句
done
语法解读:
1 select 从 input_list 获取相关的值,然后输出到一个菜单列表,元素格式如下:
序号) 菜单条目
2 用户输入信息的标识使用PS3 的值,默认值是#?。
我们可以定制PS3环境变量
3 如果用户输入菜单序号,则输出菜单内容
4 select的退出方式有很多种
强制退出:Ctrl+D 组合键
普通退出:结合break方式
简单实践
实践1-语法实践
[root@localhost ~]# cat simple_select.sh
#!/bin/bash
# select语句的使用
# 定制select循环逻辑
echo "您喜欢的操作系统是?"
select osname in "HarmonyOS" "Linux" "Windows" "Ubuntu"
do
echo "您选择的操作系统是: $osname."
done
脚本执行效果
[root@localhost ~]# /bin/bash simple_select.sh
您喜欢的操作系统是?
1) HarmonyOS
2) Linux
3) Windows
4) Ubuntu
#? 5
您选择的操作系统是: .
#? 2
您选择的操作系统是: Linux.
#? # 使用Ctrl + D 方式退出循环
实践2-定制信息+优雅退出
[root@localhost ~]# cat simple_select.sh
#!/bin/bash
# select语句的使用
# 定制普通环境变量
PS3='请选择菜单序号: '
# 定制select循环逻辑
echo "您喜欢的操作系统是?"
select osname in "HarmonyOS" "Linux" "Windows" "Ubuntu"
do
echo "您选择的操作系统是: $osname."
break
done
脚本执行效果
[root@localhost ~]# /bin/bash simple_select.sh
您喜欢的操作系统是?
1) HarmonyOS
2) Linux
3) Windows
4) Ubuntu
请选择菜单序号: 1
您选择的操作系统是: HarmonyOS.
[root@localhost ~]#