本教程我们通过现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下。

当你在终端环境下安装新的软件时,你可以经常看到信息对话框弹出,需要你的输入。对话框的类型有密码箱,检查表,菜单,等等。他们可以引导你以一种直观的方式输入必要的信息,使用这样的用户友好的对话框的好处是显而易见的。如下图所示:

当你写一个交互式shell脚本,你可以使用这样的对话框来接受用户的输入。whiptail可以在shell脚本中创建基于终端的对话框,消息框的过程,类似于Zenity或xdialog GUI脚本代码。预先安装在所有的Linux发布版本中。

下面来看看whiptail的用法:

创建一个消息框

一个消息框中显示一个确认按钮继续任意的文本消息。

语法:

whiptail –title “” –msgbox “”

例:

#!/bin/bash
whiptail --title  

创建一个yes/no对话框

用户输入yes或no的对话框。

语法:

whiptail –title “” –yesno “”

实例:

#!/bin/bash
 )then
    echo "You chose Yes. Exit status was $?."
else
     echo "You chose No. Exit status was $?"
fi

或者,你可以是“–yes-button” ,”–no-button”选项。

#!/bin/bash
 ) then
    echo "You chose Skittles Exit status was $?."
else
    echo "You chose M&M's. Exit status was $?."
fi

创建一个表单输入框

如果你想用户输入任意的文本,您可以使用一个输入框。

语法:

whiptail –title “” –inputbox “”

实例:

#!/bin/bash
PET=$(whiptail --title   Wigglebutt >& >& >&)
exitstatus=$?
 ]; then
    echo "Your pet name is:" $PET
else
    echo "You chose Cancel."
fi

创建一个密码框

当用户需要输入敏感信息时密码框是有用的。

语法:

whiptail –title “” –passwordbox “”

实例:

#!/bin/bash
PASSWORD=$(whiptail --title   >& >& >&)
exitstatus=$?
 ]; then
    echo "Your password is:" $PASSWORD
else
    echo "You chose Cancel."
fi

创建一个菜单栏

当你想让用户选择一个任意数量的选择中,你可以使用菜单框。

语法:

whiptail –title “

” –menu “”

[ ] . . .

实例:

#!/bin/bash
OPTION=$(whiptail --title
" "Grilled Spicy Sausage"
" "Grilled Halloumi Cheese"
" "Charcoaled Chicken Wings"
>& >& >&)
exitstatus=$?
 ]; then
    echo "Your chosen option:" $OPTION
else
    echo "You chose Cancel."
fi

创建radiolist对话框

语法:

whiptail –title “” –radiolist “” [ ] . . .

实例:

#!/bin/bash
DISTROS=$(whiptail --title "Test Checklist Dialog" --radiolist

"debian" "Venerable Debian" ON
"ubuntu" "Popular Ubuntu" OFF
"centos" "Stable CentOS" OFF
>& >& >&)
exitstatus=$?
 ]; then
    echo "The chosen distro is:" $DISTROS
else
    echo "You chose Cancel."
fi

创建一个表对话框

当你想让用户选择一个列表中选择多个选项的清单对话框是有用的,radiolist对话框,只允许选择一个。

语法:

whiptail –title “” –checklist “” [ ] . . .

实例:

#!/bin/bash
DISTROS=$(whiptail --title "Test Checklist Dialog" --checklist

"debian" "Venerable Debian" ON
"ubuntu" "Popular Ubuntu" OFF
"centos" "Stable CentOS" ON
>& >& >&)
exitstatus=$?
 ]; then
    echo "Your favorite distros are:" $DISTROS
else
    echo "You chose Cancel."
fi

创建一个进度条

进度条是一个用户友好的对话框。whiptail从标准输入读取一个百分数(0~100),显示一个表内相应的计数。

语法:

whiptail –gauge “”

实例:

#!/bin/bash
{
     ; i <=  ; i+=)); do

        echo $i
    done
} | whiptail --gauge   

哈哈,,是多么容易在交互式shell脚本创建有用的对话框了吧。下次需要写一个交互式的shell脚本,试着用whiptail哈

本文来源 :详解Linux交互式shell脚本中创建对话框实例教程_linux服务器

详解Linux交互式shell脚本中创建对话框实例教程_linux服务器的更多相关文章

  1. Linux/Unix shell 脚本中调用SQL,RMAN脚本

    Linux/Unix shell脚本中调用或执行SQL,RMAN 等为自动化作业以及多次反复执行提供了极大的便利,因此通过Linux/Unix shell来完成Oracle的相关工作,也是DBA必不可 ...

  2. Linux下shell脚本中信号捕获和函数练习脚本之ping一个网段

    该脚本主要的目的是练习在Linux bash脚本中捕获信号,顺便练习一下函数的使用,还有就是终止一个正在运行的程序后,该程序打开的文件的后续处理问题等等!脚本功能:  ping一个网段内的IP,检测哪 ...

  3. spring mvc DispatcherServlet详解之三---request通过ModelAndView中获取View实例的过程

    整个spring mvc的架构如下图所示: 上篇文件讲解了DispatcherServlet第二步:通过request从Controller获取ModelAndView.现在来讲解第三步:reques ...

  4. 创建交互式shell脚本对话框

    当你在终端环境下安装新的软件时,你可以经常看到信息对话框弹出,需要你的输入,比如:RHEL/CentOS自带的setup,对话框的类型有密码箱.检查表.菜单等等.他们可以引导你以一种直观的方式输入必要 ...

  5. shell脚本中常见的一些特殊符号和作用详解

    这篇文章主要介绍了shell脚本中常见的一些特殊符号和它的作用详解,总结的很简洁,容易看懂,需要的朋友可以参考下   在编写Shell脚本时,我们需要会用到各种各样的特殊符号,通过这些特殊符号可以使我 ...

  6. linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)

    linux useradd(adduser)命令参数及用法详解(linux创建新用户命令) useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号 ...

  7. Shell脚本中执行mysql的几种方式(转)

    Shell脚本中执行mysql的几种方式(转) 对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用 ...

  8. Shell脚本中执行sql语句操作mysql

    对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...

  9. 详解linux运维工程师入门级必备技能

    详解linux运维工程师入门级必备技能 | 浏览:659 | 更新:2013-12-24 23:23 | 标签:linux it自动化运维就是要很方便的运用各种工具进行管理维护,有效的实施服务器保护 ...

随机推荐

  1. 基于dubbo框架下的RPC通讯协议性能测试

    一.前言 Dubbo RPC服务框架支持丰富的传输协议.序列化方式等通讯相关的配置和扩展.dubbo执行一次RPC请求的过程大致如下:消费者(Consumer)向注册中心(Registry)执行RPC ...

  2. Thinkphp 验证码

    一.生成验证码 $Verify = new \Think\Verify(); $Verify->entry(); 生成的验证码信息会保存到session中,里面包含数据有: array('ver ...

  3. 探索软件工程道路上的我III (Θ∀Θ#)

    github地址:https://github.com/JUNYU217/2016-03-08 开发语言:Java 开发工具:UltraEdit || 为月末了,网费欠了...很抱歉的拖了那么久的作业 ...

  4. Dapper sql in

    应用场景: 使用 sql的 Case When Then 批量更新某张表,底层数据库用到了Dapper 代码示例: public int UpdateClientReceivedResult(Dict ...

  5. 菜鸟的IT生活4

    今天主要复习了以前的内容,输入输出,数据类型,运算符,顺序语句,分支语句等等,把几个不太连贯跟没上传过的传一下,以后加深下印象,加油!

  6. unicode-range 字体混搭(转)

    最先想到的方法是定义两个拥有不同字体CSS类分别赋予不同的元素. <div class="font1"></div> <div class=" ...

  7. 【转】 Tomcat v7.0 Server at localhost was unable to start within 45

    转载地址:http://www.jsjtt.com/java/JavaWebkaifa/58.html Starting Tomcat v7.0 Server at localhost' has en ...

  8. java实验2实验报告(20135131)

    一.实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计模式 二.实验要求 1.没有L ...

  9. Support Vector Machines for classification

    Support Vector Machines for classification To whet your appetite for support vector machines, here’s ...

  10. Windows-005-显示隐藏文件

    此文主要讲述如何设置 Win7 系统显示隐藏的文件.文件夹和驱动器,敬请亲们参阅.若有不足之处,敬请大神指正,不胜感激!详情如下: Win7 系统安装完成后,默认是不显示隐藏的文件.文件夹和驱动器的( ...