Linux里面能够在命令行里造成对话框,用光标上下,左右选择,一屏一屏的问答选择,填写。shell

whiptail是Linux不须要另行安装,默认就有的,其它的好比dialog须要另行安装,很麻烦,虽然功能比较好些。bash

帖一个写好的东西。ide

#!/bin/bash

trap "" 2

while true

do

OPTION=$(whiptail --title "Email Manager" --nocancel --menu "Choose your option" 15 60 4 \

"1" "Add Email User" \

"2" "Delete Email User" \

"3" "List Email User" \

"4" "EXIT"  3>&1 1>&2 2>&3)

case $OPTION in

1)

EmailAddress=$(whiptail --title "EmailAddress-form Input Box" --inputbox "What is your add EmailAddress?" 10 60 @shenxu.com 3>&1 1>&2 2>&3)

exitstatus=$?

if [ $exitstatus = 0 ]; then

grep $EmailAddress /etc/postfix/virtual_mailbox_maps>/dev/nul

exitstatus=$?

if [ $exitstatus = 0 ]; then

whiptail --msgbox "The Email Address is a existed" 10 40

elif (whiptail --title "Add Yes/No Box" --yesno "Are you sure add $EmailAddress." 10 60) then

/etc/postfix/mailadd.sh $EmailAddress

whiptail --msgbox "The Email Address $EmailAddress is a added." 10 40

fi

else

whiptail --msgbox "You chose Cancel." 10 40

fi

;;

2)

EmailAddress=$(whiptail --title "EmailAddress-form Input Box" --inputbox "What is your Delete EmailAddress?" 10 60 @shenxu.com 3>&1 1>&2 2>&3)

exitstatus=$?

if [ $exitstatus = 0 ]; then

grep $EmailAddress /etc/postfix/virtual_mailbox_maps>/dev/nul

exitstatus=$?

if [ $exitstatus != 0 ]; then

whiptail --msgbox "The Email Address $EmailAddress is a not exist." 10 40

elif (whiptail --title "Add Yes/No Box" --yesno "Are you sure delete $EmailAddress." 10 60) then

/etc/postfix/maildel.sh $EmailAddress

whiptail --msgbox "The Email Address $EmailAddress is a deleted." 10 40

fi

else

whiptail --msgbox "You chose Cancel." 10 40

fi

;;

3)

EmailAddress=$(cat /etc/postfix/virtual_mailbox_maps | awk '{print $1}')

whiptail --msgbox "The Email User list are $EmailAddress." --scrolltext 20 40

;;

4)

echo "EXIT"

break

;;

esac

done

trap : 2post

whiptail --title "Email Manager" --nocancel --menu "Choose your option" 15 60 4 \

"1" "Add Email User" \

"2" "Delete Email User" \

"3" "List Email User" \

"4" "EXIT"  3>&1 1>&2 2>&3命令行

--title "Email Manager" 是标题,双引号里是本身填的提示信息orm

--nocancel 是在这个图文里面不显示取消,只显示OKip

--menu "Choose your option" 15 60 4 是表示菜单提示,双引号里是本身填的提示信息,15是高度,60是长度,4是有个选择项目input

下面的1-4是本身的提示it

最后比较关键,3>&1 1>&2 2>&3是为了把选择的内容填进变量OPTIONio

whiptail --title "EmailAddress-form Input Box" --inputbox "What is your add EmailAddress?" 10 60 @shenxu.com 3>&1 1>&2 2>&3

--inputbox "What is your add EmailAddress?" 是能够造成一个让用户输入的提示框

@shenxu.com 是默认输入text里的值

whiptail --msgbox "You chose Cancel." 10 40 是显示一行你的提示

其实还有--infobox,彷佛和msgbox很像,其实不一样,它基本上用不上,是在shell运行完后,能够往前翻页能看见的东西

--scrolltext 20 40是为了显示多行的时候能够上下滚动

另外还有--passwordbox和text同样输入,就是以***显示

whiptail --checklist "choose" 15 60 2 "1" "aa" ON "2" "bb" ON

15 60仍是高和宽,2是有几个选项,和menu同样,后面多了一个ON或者OFF表示状态,就是菜单出来后默认是否是选,On是选,OFF不选,用空格键来选择。能够多选。

--radiolist,不能够多选了。ON就只能有一个,其它必须是OFF

还有一个显示进度条的--gauge,我以为没啥用处。

#!/bin/bash

{

for n in `seq 100`

do

sleep 1

echo $n

done

} | whiptail --gauge "Please wait while installing" 6 60 0

linux输入命令对话框,linux里命令的对话框whiptail相关推荐

  1. linux输入子系统概述,Linux输入子系统(Input Subsystem)

    Linux 的输入子系统不仅支持鼠标.键盘等常规输入设备,而且还支持蜂鸣器.触摸屏等设备.本章将对 Linux 输 入子系统进行详细的分析. 一 前言 输入子系统又叫 input 子系统.其构建非常灵 ...

  2. 7.Linux 输入子系统分析

    为什么要引入输入子系统? 在前面我们写了一些简单的字符设备的驱动程序,我们是怎么样打开一个设备并操作的呢? 一般都是在执行应用程序时,open一个特定的设备文件,如:/dev/buttons 1 .. ...

  3. 安卓linux输入代码在哪里,输入  |  Android 开源项目  |  Android Open Source Project

    Android 输入子系统名义上由遍历系统多个层的事件管道组成. 输入管道 在最低层,物理输入设备会生成描述状态更改(例如按键按压和轻触接触点)的信号.设备固件以某种方式编码和传输这些信号,例如向系统 ...

  4. linux下pdb文件除水,Linux命令删除文本里rmsd20行,输入到一个新的文本,然后提取出相应的pdb id。...

    Linux命令删除文本里rmsd>20行,输入到一个新的文本,然后提取出相应的pdb id. 文本名字为 rmsd.dat, 文本内容是如下: refer.pdb - complex_patch ...

  5. Linux基本的键盘输入快捷键和一些常用命令

    <Ctrl><Alt><F1> 切换到第一个文本终端.在Linux下你可以有多达六个不同的终端.这个命令的意思是:"同时按住<Ctrl>键和& ...

  6. linux输出管道内容,Linux 输入/输出和管道(|)及相关的命令

    此简书不再维护. 在系统默认情况下,shell从键盘读(接收)命令的输入,并将命令的输出显示(写)到屏幕上.shell的标准命令输入是Standard Input,标准输出(Standard Outp ...

  7. linux查看有几个终端命令,如何知道你在 Linux 里最常使用的几个命令?

    不知道大家自接触 Linux 以来,都使用过哪些命令,其中最常用的命令是什么? 我最常用的命令之一是 sudo ,因为我每天都在使用它在 Linux 上安装.更新.删除软件包以及其它各种需要超级用户权 ...

  8. linux输入ls后不显示_零基础学习之Linux基础命令小结

    安装完重启后,没有像sery所说在图形界面崩溃了,由于我没有安装X-WINDOWS而是直接进入了文本界面.如果你想做linux管理的话,最好在文本界面下工作,这样会适应如下图: 第一行显示的是我们所安 ...

  9. linux输入过的命令行,LINUX中命令行的历史记录和编辑

    前的Linux发行版默认使用Bash Shell,它已成为Linux系统的实际标准.Bash Shell命令行具有非常强大的功能.Bash Shell提供了一些特性使输入命令变得容易. 1.命令行的历 ...

  10. Linux输入命令不显示

    不知大家是否遇到过在远程linux服务器正在努力敲打命令时,突然不显示了你敲的内容.下面针对此问题进行分析. 在linux系统中有这么一个命令stty,stty命令用于检查和修改当前注册的终端的通信参 ...

最新文章

  1. 区块链笔记-Hash算法
  2. uml具有多种视图_UML建模与架构文档化
  3. vue 调用共众url_vue单页面,在微信公众号支付中遇到的URL未注册BUG解决方法-Go语言中文社区...
  4. HDOJ 1082 模拟 水
  5. ds18b20温度传感器 lcd C语言,C程序控制18B20测温及LCD显示源码打包
  6. CSS进阶(10)—— 深入理解BFC结界
  7. uniDBGrid导入数据库(转红鱼儿)
  8. 计算机操作员五级知识点,计算机操作员五级.doc
  9. java 实现回收站功能,shell编程之实现windows回收站功能分享
  10. 2015,鬼王Xun和GGL比赛,带给我们无尽的欢乐
  11. nacos-demo feign调用
  12. Spring+quartz集群配置,Spring定时任务集群,quartz定时任务集群
  13. 银行按揭借款合同范本
  14. 用二维数组打印杨辉三角
  15. python 更新pip报错 解决方法大全
  16. [SharePoint教程系列]SharePoint 2016 安装语言包
  17. 时序分析 27 - 时序预测 格兰杰因果关系(上) 理论知识
  18. vscode 添加版权信息
  19. 关于当前安全设置不允许下载文件问题的解决
  20. Jquery UI中 Dialog对象的作用及常用属性

热门文章

  1. mysql运维高级_Mysql DBA 高级运维学习之路-mysql建表语句及表知识
  2. 四象限法推导lm曲线_IS曲线推导
  3. Mac上安装create-react-app
  4. 控制谷歌浏览器的最大化最小化
  5. 3D特征:关于HFM和HBB
  6. serlvet中的过滤器filter
  7. containerd项目正式从CNCF毕业
  8. Tensorflow学习笔记:多项式拟合
  9. python字典嵌套实例
  10. 用开源NAC阻止非法网络访问