在linux中创建文本菜单
CentOS7.3学习笔记总结(七十四)-在linux中创建文本菜单
在linux系统使用中,shell脚本的交互最常用的方式是使用菜单(文本菜单),而文本菜单的核心就是case命令,也就是说是通过case命令实现菜单的交互,下面我们设计一个简单的脚本在linux系统中实现文本菜单。
先看一下菜单效果:

脚本内容:
[root@localhost ~]# cat menutext.sh
#!/bin/bash
function menu {
clear
echo -e "\t\t\tDisplay Computer Info Menu\n"
echo -e "\t1. Display disk space"
echo -e "\t2. Display memory usage"
echo -e "\t0. Exit program\n\n"
echo -en "\t\tEnter option: "
read -n 1 option
}
function diskinfo {
clear
df -k
}
function meminfo {
clear
cat /proc/meminfo
}
while [ 1 ]
do
menu
case $option in
0)
break ;;
1)
diskinfo ;;
2)
meminfo;;
*)
clear
echo "Sorry, wrong selection";;
esac
read -n 1 line
done
clear
菜单显示是通过echo语句实现,echo命令的使用方法请参阅以前的文章《linux系统中的最常用命令之一-echo》。
菜单内容是通过自定义的函数实现,函数的调用通过case来实现。
获取输入信息,通过read命令实现,-n 1限制只读取一个字符,使用者只需输入一个数字,不用按回车就可以实现调用。
实现过程:在命令行中输入sh menutext.sh,会显示我们设置好的菜单:

当我们输入1时,显示硬盘信息:

在此页面我们,我们点任意键,回到菜单。
当我们输入2时,显示内存信息:

当我们输入0时,退出程序运行。是不是非常简单,脚本也非常简单。