shell脚本中select循环语句

1. 脚本中select的语法格式

select VAR in LIST
do
command1
command2
... ...
commandN
done

select循环语句有如下的特点:

  • select语句使用bash内部变量 PS3 的值作为它的提示符
  • 打印到屏幕上的列表LIST中的每一项都会在前面加上一个数字编号
  • 当用户输入的数字与某一个数字编号一致时,列表中列表的项即被赋值给VAR
  • 如果用户输入的内容为空时,将重新显示列表中的项和提示符信息
  • 可以通过添加一个退出选项,或者使用Ctrl+C 或Ctrl+V组合键来退出select循环

2. select脚本示例

#########################################################################
# File Name: OS_Info.sh
# Author: Toney Sun
# mail: vip_13031075266@163.com
# Created Time: 2020年04月25日 星期六 22时30分31秒
#########################################################################
#!/bin/bash PS3="your choice is [5 for quit ]: " while :
do
select choice in disk_partion filesystem cpu_load mem_util quit
do
case "$choice" in
disk_partion)
#显示磁盘分区信息
fdisk -l
break;
;;
filesystem)
#查看磁盘的使用率
df -h
break;
;;
cpu_load)
#查看CPU的使用率
uptime
break;
;;
mem_util)
#查看内存使用情况
free -m
break;
;;
quit)
exit
;;
*)
echo "Input error!!!"
;;
esac
echo "------------------------------------------"
done
done

脚本的运行结果如下:

root@ubantu:/mnt/hgfs/em嵌入式学习记录/shell# ./systemInfo.sh
1) disk_partion 3) cpu_load 5) quit
2) filesystem 4) mem_util
your choice is [5 for quit ]: 2
Filesystem Size Used Avail Use% Mounted on
udev 946M 0 946M 0% /dev
tmpfs 196M 1.8M 195M 1% /run
/dev/sda1 20G 15G 3.9G 80% /
tmpfs 980M 0 980M 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 980M 0 980M 0% /sys/fs/cgroup
/dev/loop1 15M 15M 0 100% /snap/gnome-logs/45
/dev/loop0 15M 15M 0 100% /snap/gnome-characters/495
/dev/loop2 94M 94M 0 100% /snap/core/9066
/dev/loop3 141M 141M 0 100% /snap/gnome-3-26-1604/98
/dev/loop4 2.3M 2.3M 0 100% /snap/gnome-calculator/260
/dev/loop5 63M 63M 0 100% /snap/gtk-common-themes/1506
/dev/loop8 3.8M 3.8M 0 100% /snap/gnome-system-monitor/57
/dev/loop6 3.8M 3.8M 0 100% /snap/gnome-system-monitor/135
/dev/loop7 141M 141M 0 100% /snap/gnome-3-26-1604/74
/dev/loop9 219M 219M 0 100% /snap/nextcloud/20007
/dev/loop11 13M 13M 0 100% /snap/gnome-characters/139
/dev/loop10 161M 161M 0 100% /snap/gnome-3-28-1804/116
/dev/loop12 55M 55M 0 100% /snap/gtk-common-themes/1502
/dev/loop13 94M 94M 0 100% /snap/core/8935
/dev/loop14 1.0M 1.0M 0 100% /snap/gnome-logs/93
/dev/loop16 4.4M 4.4M 0 100% /snap/gnome-calculator/704
/dev/loop15 55M 55M 0 100% /snap/core18/1705
vmhgfs-fuse 489G 35G 454G 8% /mnt/hgfs
tmpfs 196M 16K 196M 1% /run/user/121
tmpfs 196M 36K 196M 1% /run/user/1000
/dev/sr0 1.9G 1.9G 0 100% /media/toney/Ubuntu 18.04.2 LTS amd64
tmpfs 196M 0 196M 0% /run/user/0
/dev/loop17 233M 233M 0 100% /snap/nextcloud/20498
1) disk_partion 3) cpu_load 5) quit
2) filesystem 4) mem_util
your choice is [5 for quit ]:

shell脚本中select循环语句用法的更多相关文章

  1. centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 第三十六节课

    centos  shell脚本编程2 if 判断  case判断   shell脚本中的循环  for   while   shell中的函数  break  continue  test 命令   ...

  2. Shell脚本中执行sql语句操作mysql的5种方法【转】

    对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...

  3. shell 脚本中所有循环语法

    写出 shell 脚本中所有循环语法 for 循环 : for i in $(ls);do echo item:$i done while 循环 : #!/bin/bash COUNTER=0 whi ...

  4. Shell脚本中执行sql语句操作mysql

    对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...

  5. SHELL脚本中执行SQL语句操作MYSQL的5种方法

    对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...

  6. Shell脚本中的while getopts用法小结

    getpots是Shell命令行参数解析工具,旨在从Shell Script的命令行当中解析参数.getopts被Shell程序用来分析位置参数,option包含需要被识别的选项字符,如果这里的字符后 ...

  7. 在shell脚本中调用sql语句

    查询员工信息 -S:静默登录 [oracle@localhost shells]$ cat shell1.sh #!/bin/bash #查询员工信息 sqlplus -S /nolog <&l ...

  8. shell 脚本中执行mysql语句

    通过hash建表之后,表的数据量巨大2048,那怎么去验证表是否建成功呢? 逻辑生成表名这部分就不写了.只要能建表成功,这部分的脚本肯定是有的.那么怎么在shell中执行selec查询并返回呢 只要在 ...

  9. shell编程中的循环语句

    while循环直接从文件中读取 while read line do command done < filename until循环 until 条件 do command done for循环 ...

随机推荐

  1. Hadoop 3.1.1 - Yarn - 使用 CGroups

    在 Yarn 上使用 CGroups CGroups 是一种将任务及其子任务聚集和划分进一个垂直的分组的策略,并提供在此结构上的特别的操作.CGroups 是 Linux 内核功能,自内核版本 2.6 ...

  2. 关于表单重复提交之验证码 和谷歌Kaptcha图片验证码的使用

    表单重复提交之-----验证码 表单重复提交有三种常见的情况: 一:提交完表单.服务器使用请求转来进行页面跳转.这个时候,用户按下功能键 F5,就会发起最后一次的请求. 造成表单重复提交问题.解决方法 ...

  3. [源码解析] PyTorch 分布式(2) --- 数据加载之DataLoader

    [源码解析] PyTorch 分布式(2) --- 数据加载之DataLoader 目录 [源码解析] PyTorch 分布式(2) --- 数据加载之DataLoader 0x00 摘要 0x01 ...

  4. Git (10)-- 打标签(git tag)

    @ 目录 1.列出标签 2.创建标签 2.1.附注标签 2.2.轻量标签 3.后期打标签 4.共享标签 5.删除标签 6.检出标签 超详细 Git 图文版小白教程(持续更新) 像其他版本控制系统(VC ...

  5. Typora+Markdown便捷发布blog

    参考文章:https://www.cnblogs.com/Heroge/p/12459762.html 需要下载Typora和dotnet Typora下载链接:https://www.typora. ...

  6. VulnHub靶场渗透之:Gigachad

    环境搭建 VulnHub是一个丰富的实战靶场集合,里面有许多有趣的实战靶机. 本次靶机介绍: http://www.vulnhub.com/entry/gigachad-1,657/ 下载靶机ova文 ...

  7. 常见web中间件漏洞(三)Nginx漏洞

    nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,有  开源,内存占用少,并发能力强,自由模块化,支持epoll模型,可限制连接数,支持热部署,简单 ...

  8. Are You OK?主键、聚集索引、辅助索引

    每张表都一定存在主键吗? 关于这个问题,各位小伙伴们不妨先自己想一想,再往下寻找答案. 首先公布结论:对于 InnoDB 存储引擎来说,每张表都一定有个主键(Primary Key)! 让人非常遗憾的 ...

  9. MySQL Mac 终端环境变量配置

    MySQL Mac 终端环境变量配置 这里安装的是mysql-8.0.26-macos11-x86_64,M1Mac,原本打算安装arm64版本,但一直安装不了,就装了x86版本 安装完成MySQL之 ...

  10. Java角度制向弧度制转化

    1.第一次写博客啊写博客啊写啊写0.0..0. 2.输入正多边形的边长·边数·求正多边形的面积 3.超级简单,可是在转弧度制那里有点懵,刚开始学Java,所以难免走弯路 4.代码如下: 1 publi ...