shell脚本中select循环语句用法

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: [email protected]
# 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 ]: 

原创文章 96 获赞 73 访问量 6万+

猜你喜欢

转载自blog.csdn.net/s2603898260/article/details/105759268