整体是通过建立菜单布局,然后根据菜单上的布局建立函数(就是为这些布局实现功能),最后将函数和布局实现逻辑上的相连;

如何建立菜单布局?

整体上是通过打印字符创建出,因此需要使用echo命令,但是有一些非打印字符,这些非打印字符很有用,如 空格键,换行符,对应的是\t,\n  ,,想要打印出这些非打印字符,就必须使用echo -e  选项,最后一个是获取用户的输入,echo -en 选项可将光标移至你选项后的内容,这样使得菜单更专业些,再用read -n 1 option (意思是读取一个字符并将其保存在option中)

 echo -e "\t\t\t SYS Admin MENU\n"
echo -e "\t1. display disk space"
echo -e "\t2. display logged on users"
echo -e "\t3. display memory usages"
echo -e "\t0. Exit menu\n\n"
echo -en "\t\tEnter option:"

运行后的结果是

 ]# ./graphical
SYS Admin MENU . display disk space
. display logged on users
. display memory usages
. Exit menu Enter option:[root@localhost ~]#

这个是没有加read,没有读取命令,还是不行的,因此想要获取用户的输入,有两步,第一步是提供输入,第二步读取输入;

现在我们来看看加了read的命令后所出现的情况

 #! /bin/bash
echo -e "\t\t\t SYS Admin MENU\n"
echo -e "\t1. display disk space"
echo -e "\t2. display logged on users"
echo -e "\t3. display memory usages"
echo -e "\t0. Exit menu\n\n"
echo -en "\t\t\tEnter option:"
read -n option
~

运行下看看

 [root@localhost ~]# ./graphical
SYS Admin MENU . display disk space
. display logged on users
. display memory usages
. Exit menu Enter option:

很明显这样就是让你在光标后输入一个字符并读取;

关于echo命令的小提示 echo"the $file not file" ,,就会出现 ./text11: line : echothe z2 not file: command not found

而如果你如果你在echo后空一格  echo "the $file not file" ,,就会出现 the z2 not file ,,,所以echo打印时必须要空格,至少空一格,至多无限;

如何创建函数?

通常我们为没有实现的函数创建一个空函数,里面至多只有一个echo语句,

 function stub
{
echo "this is a stub function"
}

这个桩函数,又叫空函数,是为了,你不必为每个菜单键写一个函数后,才让菜单投入使用;

另外,有助于shell脚本的,你可以将菜单本身当做一个函数来创建,,所以每次你想再次打开菜单的时候,不用每次都运行这个文件,你可以直接调用菜单函数,重现菜单。

 function menu{
clear
echo -e "\t\t\t SYS Admin MENU\n"
echo -e "\t1. display disk space"
echo -e "\t2. display logged on users"
echo -e "\t3. display memory usages"
echo -e "\t0. Exit menu\n\n"
echo -en "\t\t\tEnter option:"
read -n option
}

最后就是将你创建的菜单布局和函数进行相连,,这个相连是通过程序逻辑而实现的;可通过case命令,case可将你的选择和匹配的条件进行比较从而输出命令;

他的语法是

case  option in
test1 | test2) command;;
test3) command;;
test4) command;;
*) command;;
esac

首先我可以通过调用menu函数打开菜单布局,然后在用case函数进行程序逻辑相连

liunx中图形化桌面环境中的脚本编程之——创建文本菜单的更多相关文章

  1. 《Linux命令行与shell脚本编程大全》第十八章 图形化桌面环境中的脚本编程

    18.1 创建文本菜单 直接上例子吧:   1 #!/bin/bash   2 function menu   3 {   4         clear   5         echo   6   ...

  2. 为Linux主机安装图形化桌面环境

    本文主要介绍在Linux实例中,centos 7 以及ubutun 14如何安装图形化桌面环境. CentOS 7 此处以安装MATE桌面环境为例,步骤如下. 说明:在安装重启后,如果卡在启动页面,需 ...

  3. 阿里云ecs开启x11图形化桌面

    阿里云帮助文档:https://www.alibabacloud.com/help/zh/faq-detail/41227.htm 安装云服务器 ECS CentOS 7 图形化桌面 以安装 MATE ...

  4. centos图形化桌面安装过程

    连接 1.安装xwindow yum -y groupinstall "X Window System" \\安装 X Window System 环境 2.安装gnome des ...

  5. CentOS 中 YUM 安装桌面环境(转)

    使用 yum groupinstall 指令很容易就能安装上图形界面的桌面系统. 1. yum 的 group 指令 yum 可以以程序组的模式来安装成套的软件包.支持的软件包可以通过, # yum ...

  6. CentOS7系列--10.1CentOS7中的GNOME桌面环境

    CentOS7中的桌面环境 1. 安装GNOME桌面环境 1.1. 列出所有安装套件 [root@appclient ~]# yum groups list Loaded plugins: faste ...

  7. CentOS 中 YUM 安装桌面环境

    CentOS 作为服务器的操作系统是很常见的,但是因为需要稳定而没有很时髦的更新,所以很少做为桌面环境.在服务器上通常不需要安装桌面环境,最小化地安装 CentOS(也就是 minimal CentO ...

  8. ssh tunneling应用案例-AWS EC2 vnc图形化桌面的支持

    一般地,无论是AWS EC2还是阿里云的云主机,linux系统默认都只提供ssh登录方式.如果你是一个技术控,非常希望把图形化界面给折腾出来,这其中就不需有vnc server的支持,除此之外,还涉及 ...

  9. Linux之 xstart调用 x11vnc远程图形化桌面

    问题:用 xmanager 中的 xstart 启动界面,报x11无法打开 . 1. root调整x11参数,将其打开[root@localhost ~]# vi /etc/ssh/sshd_conf ...

随机推荐

  1. 学习SVG 重点汇总

    什么是SVG? Δ  SVG 指可伸缩矢量图形 (Scalable Vector Graphics) Δ  SVG 用来定义用于网络的基于矢量的图形 Δ  SVG使用XML格式来定义图形 Δ  SVG ...

  2. Windows下Mysql常用操作命令

    以下命令中的服务启动及停止需要使用以管理员身份运行cmd.exe. 1.启动Mysql服务:net start [mysql服务名].示例: net start mysql57 结果: 2.停止Mys ...

  3. ELK系列~nxlog实现多位置文件的收集

    前几天我写了几篇关于ELK日志收集,存储和分析的文章: ELK系列~NLog.Targets.Fluentd到达如何通过tcp发到fluentd ELK系列~Nxlog日志收集加转发(解决log4日志 ...

  4. 容器与Docker简介(一)——微软微服务电子书翻译系列

    前不久参加了深圳的Azure开源者峰会,会上张善友张老师推荐了微软的一个架构网站:.NET Application Architecture 这几天正好工作比较闲,看了下里面关于微服务架构的介绍,非常 ...

  5. CNCC2017梳理

    大牛云集的中国计算机大会:大会日程表:http://cncc.ccf.org.cn/cn/news/schedule_empty 早上的论坛可以在爱奇艺下载视频 下午的分论坛是多个同时进行的,我也只去 ...

  6. js 短信倒计时60s

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. css3+div画大风车

    今天已经礼拜三了,周天小颖家的佩佩就要结婚啦,小颖要去当伴娘了,哈哈哈哈哈哈,想想都觉得乐开了花,不过之前她给我说让我当她伴娘时,我说我要减肥,不然她那么瘦弱,我站旁边就感觉像一个圆滚滚的小皮球,小颖 ...

  8. 桌面消息通知:HTML5 Notification

    先上一段完整代码 //注册权限 Notification.requestPermission(function (status) { // 这将使我们能在 Chrome/Safari 中使用 Noti ...

  9. 玩玩Qt(一)

    最近在看一些关于游戏引擎的东西,本来是有几个游戏的小点子,其实实现起来还挺麻烦的,想找个游戏引擎看看能不能码起来.辗转之后发现了很多2D引擎,其中国产的要数cocos2dx用的好像是比较广泛,但是好多 ...

  10. HTML5网页音乐播放器

    1功能介绍 HTML5中推出了音视频标签,可以让我们不借助其他插件就可以直接播放音视频.下面我们就利用H5的audio标签及其相关属性和方法来制作一个简单的音乐播放器.主要包括以下几个功能: 1.播放 ...