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. 【LeetCode】81. 搜索旋转排序数组 II

    81. 搜索旋转排序数组 II 知识点:数组,二分查找: 题目描述 已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同. 在传递给函数之前,nums 在预先未知的某个下标 k(0 ...

  2. input输入框只能输入正数和小数(保留小数点后两位)

    1.限制只能输入正数和小数保留小数点后两位 1 <input type="number" id="txtNum" /> 2 3 <script ...

  3. Leetcode_丑数问题

    1. 263. 丑数 给你一个整数 n ,请你判断 n 是否为 丑数 .如果是,返回 true :否则,返回 false . 丑数 就是只包含质因数 2.3 或 5 的正整数. 示例 1: 输入:n ...

  4. Go interface 原理剖析--类型转换

    hi, 大家好,我是 haohognfan. 可能你看过的 interface 剖析的文章比较多了,这些文章基本都是从汇编角度分析类型转换或者动态转发.不过随着 Go 版本升级,对应的 Go 汇编也发 ...

  5. PWN——uaf漏洞学习

    PWN--uaf漏洞 1.uaf漏洞原理 在C语言中,我们通过malloc族函数进行堆块的分配,用free()函数进行堆块的释放.在释放堆块的过程中,如果没有将释放的堆块置空,这时候,就有可能出现us ...

  6. WPF按钮实现水波纹效果

    xaml代码如下 <Button x:Class="UI.btn.ZButton" xmlns="http://schemas.microsoft.com/winf ...

  7. The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path 问题解决记录

    1.问题 启动Tomcat之后,在浏览器输入IP后显示503,查看catalina.log发现报错: 2.问题定位:缺少 tomcat-native library 就是说 缺少Tomcat Nati ...

  8. 北航面向对象OO第三单元——JML

    简介 本单元借助JML(Java Modeling Language),训练了我们关于的"规格(specification)"的意识和思想 本单元代码难度较低,简单来讲就是给你规定 ...

  9. Typora+Markdown便捷发布blog

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

  10. DVWA-全等级XSS(反射型、存储型)

    DVWA简介 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法 ...