使用Select命令创建菜单
创建文本菜单的一半功夫都花在了创建菜单布局和获取输入的字符上。bash shell提供了一个很容易上手的小工具来自动完成这些工作
select命令允许从单个命令行创建菜单,然后在提取输入的答案并自动处理。select命令的格式如下:
select variable in list
do
commands
done
list参数是构成菜单的空格分割的文本选项列表。select命令会在列表中将每个选项作为一个编好号的选项显示,然后为选项显示一个特殊的用PS3环境变量定义的提示符
#!/bin/bash
# using select in the menu function diskspace {
clear
df -k
} function whoseon {
clear
who
} function menusage {
clear
cat /proc/meminfo
} PS3="Enter option: "
select option in "Display disk space" "Display logged on users" "Display memory usage" "Exit program"
do
case $option in
"Exit program")
break;;
"Display disk space")
diskspace;;
"Display logged on users")
whoseon;;
"Display memory usage")
memusage;;
*)
clear
echo "Sorry, wrong selection";;
esac
done
clear
运行后输出:

输入1

其它命令就演示了。
使用Select命令创建菜单的更多相关文章
- oracle用命令创建表空间、用户,并为用户授权、收回权限。
oracle中如何删除用户? Oracle中使用DROP USER来删除用户,如果使用DROP USER CASCADE那么用户的对象也同时被删除掉.为了达到删除用户的效果而又不影响对用户下的对象的使 ...
- 跟我一起玩Win32开发(4):创建菜单
也不知道发生什么事情,CSDN把我的文章弄到首页,结果有不少说我在误人子弟,是啊,我去年就说过了,如果你要成为砖家级人物,请远离我的博客,我这个人没什么特长,唯一厉害的一点就是不相信权威,鄙视砖家,所 ...
- ASP.NET实现微信功能(1)(创建菜单,验证,给菜单添加事件)
LZ实在 不知道怎么起名字了,索性就取了这个名字,开始吧,说实在的,想给自己的平常的学习做一个总结,总是忘了总结.也只能给工作做一个总结了. 我打算用2篇文章来写,第一篇是关于订阅号的,就是这个号,另 ...
- jQuery插件:模拟select下拉菜单
没搞那么复杂,工作中,基本够用.. <!doctype html> <html> <head> <meta charset="utf-8" ...
- Force.com微信开发系列(四)申请Access Token及自定义菜单之创建菜单
在微信接口开发中,许多服务的使用都离不开Access Token,Access Token相当于打开这些服务的钥匙,正常情况下会在7200秒内失效,重复获取将导致上次获取的Token失效,本文将首先介 ...
- 分布式数据库中间件–(3) Cobar对简单select命令的处理过程
友情提示:非原文链接可能会影响您的阅读体验,欢迎查看原文.(http://blog.geekcome.com) 原文地址:http://blog.geekcome.com/archives/284 在 ...
- Linux&shell之高级Shell脚本编程-创建菜单
写在前面:案例.常用.归类.解释说明.(By Jim) 创建菜单#!/bin/bash# testing the scriptclearechoecho -e "\t\t\tSys Admi ...
- Core开发-MVC 使用dotnet 命令创建Controller和View
NET Core开发-MVC 使用dotnet 命令创建Controller和View 使用dotnet 命令在ASP.NET Core MVC 中创建Controller和View,之前讲解过使 ...
- c# winform读取xml创建菜单
动态创建菜单使得程序灵活性大大增加,本文根据读取xml文件中的配置菜单项来动态创建菜单,代码如下: using System; using System.Collections.Generic; us ...
随机推荐
- IntelliJ IDEA---java的编译工具【转】
转自:http://baike.baidu.com/link?url=sEpS0rItaB9BiO3i-qCdGSYiTIVPSJfBTjSXXngtN2hBhGl1j36CYQORKrbpqMHqj ...
- [Android新手区] SQLite 操作详解--SQL语法
该文章完全摘自转自:北大青鸟[Android新手区] SQLite 操作详解--SQL语法 :http://home.bdqn.cn/thread-49363-1-1.html SQLite库可以解 ...
- SVN上传文件注意事项-------------------养成良好的项目文件上传习惯
项目组的学弟经常把一些.obj文件和debug目录上传到svn,这个习惯很不好,我说了很多次他总改不了,还是写个文档说清楚吧,以后查起来也方便. svn是一种版本控制工具,主要目的是用来管理代 ...
- 【PHP设计模式 11_QiaoJie.php】桥接模式(针对 二维模型)
<?php /** * [桥接模式(针对 二维模型)] * 对于多维度需要处理的事情,多耦合 * 第一维度,发送信息的类型:站内信.email.手机短信 * 第二维度,发送信息的紧急程度:普通. ...
- JavaEE基础(七)
1.面向对象(构造方法Constructor概述和格式) A:构造方法概述和作用 给对象的数据(属性)进行初始化 B:构造方法格式特点 a:方法名与类名相同(大小也要与类名一致) b:没有返回值类型, ...
- libsqlite3.dylib找不到
Xcode7中 Link Binary With Libraries 没有 .dylib库,只能找到对应的 .tbd,但不能代替使用,通过查找资料,尝试后得到以下两种解决方法. 方法1. (heqin ...
- 对js原型的理解
1.值类型和引用类型,引用类型都是对象,通过typeof()测试类型,instanceof测试是否是对象.对象是属性的集合. 2.对象都是由函数创建的,函数又是一个对象. 3.函数有一个默认的属性,叫 ...
- 标准类型String(学习中)
1.读取string对象 #include<iostream> #include<cstring> using namespace std; int main() { stri ...
- wpfのuri(让你完全明白wpf的图片加载方式以及URI写法)
绝对 pack WPF URI pack://application:,,,/是协议:“,,,”是“///”的变体 1.资源文件 — 本地程序集 Uri uri = new Uri("pac ...
- Xcode_5
Xcode_5 Objective-C进行IOS7编程 我个人的经验是,如果之前有过编程基础(无论是C.C++还是Java),那么<Objective-C基础教程>(图灵程序设计丛书 ...