Linux命令——whiptail交互式shell脚本对话框
转自:交互式shell脚本对话框----whiptail指令
当你在linux环境下setup软件的时候就会有相应的对话框让你输入。虽然我们已经习惯了这种交互的方法,但是如果有一种直观的界面来输入是不是会更加友好和方便呢,在shell脚本中你可以使用-whiptail指令来完成。
消息框

语法:
|
1
|
whiptail --title "<message box title>" --msgbox "<text to show>" <height> <width> |
实例:
|
1
|
whiptail --title "Message box title" --msgbox " Choose Ok to continue." 10 60 |
yes/no对话框

语法:
|
1
|
whiptail --title "<dialog box title>" --yesno "<text to show>" <height> <width> |
实例:
|
1
2
3
4
5
6
|
#!/bin/bashif (whiptail --title "Yes/No Box" --yesno "Choose between Yes and No." 10 60) then echo "You chose Yes. Exit status was $?."else echo "You chose No. Exit status was $?."fi |
或者也可以是自定义的选项,实例如下:

|
1
2
3
4
5
6
|
#!/bin/bashif (whiptail --title "Yes/No Box" --yes-button "Man" --no-button "Woman" --yesno "What is your gender?" 10 60) then echo "You chose Man Exit status was $?."else echo "You chose Woman. Exit status was $?."fi |
当选择左边选项的时候输出的是0,选择右边选项的时候输出的是1。
表单输入框

语法:
|
1
|
whiptail --title "<input box title>" --inputbox "<text to show>" <height> <width> <default-text> |
实例:
|
1
2
3
4
5
6
7
8
9
|
#!/bin/bashNAME=$(whiptail --title "Free-form Input Box" --inputbox "What is your pet's name?" 10 60 Peter 3>&1 1>&2 2>&3)exitstatus=$?if [ $exitstatus = 0 ]; then echo "Your name is:" $NAMEelse echo "You chose Cancel."fi |
密码输入框

语法:
|
1
|
whiptail --title "<password box title>" --passwordbox "<text to show>" <height> <width> |
实例:
|
1
2
3
4
5
6
7
8
9
|
#!/bin/bashPASSWORD=$(whiptail --title "Password Box" --passwordbox "Enter your password and choose Ok to continue." 10 60 3>&1 1>&2 2>&3)exitstatus=$?if [ $exitstatus = 0 ]; then echo "Your password is:" $PASSWORDelse echo "You chose Cancel."fi |
菜单栏
提供一个单项选择的菜单栏

语法:
|
1
|
whiptail --title "<menu title>" --menu "<text to show>" <height> <width> <menu height> [ <tag> <item> ] . . . |
实例:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#!/bin/bashOPTION=$(whiptail --title "Menu Dialog" --menu "Choose your favorite programming language." 15 60 4 \"1" "Python" \"2" "Java" \"3" "C" \"4" "PHP" 3>&1 1>&2 2>&3)exitstatus=$?if [ $exitstatus = 0 ]; then echo "Your favorite programming language is:" $OPTIONelse echo "You chose Cancel."fi |
此处的选择输出的内容为你选择的标签的‘tag’位置,上面实例中的‘1’、‘2’、‘3’、‘4’
radiolist对话框
该对话框是单选对话框,你可以控制默认的选择位置,即使你在脚本中默认选择多个,他也只会输出一个结果
语法:
|
1
|
whiptail --title "<radiolist title>" --radiolist "<text to show>" <height> <width> <list height> [ <tag> <item> <status> ] . . . |
实例:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#!/bin/bashDISTROS=$(whiptail --title "Test Checklist Dialog" --radiolist \"What is the Linux distro of your choice?" 15 60 4 \"debian" "Venerable Debian" ON \"ubuntu" "Popular Ubuntu" OFF \"centos" "Stable CentOS" OFF \"mint" "Rising Star Mint" OFF 3>&1 1>&2 2>&3)exitstatus=$?if [ $exitstatus = 0 ]; then echo "The chosen distro is:" $DISTROSelse echo "You chose Cancel."fi |
多选对话框

语法:
|
1
|
whiptail --title "<checklist title>" --checklist "<text to show>" <height> <width> <list height> [ <tag> <item> <status> ] . . . |
实例:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#!/bin/bashDISTROS=$(whiptail --title "Checklist Dialog" --checklist \"Choose preferred Linux distros" 15 60 4 \"debian" "Venerable Debian" ON \"ubuntu" "Popular Ubuntu" OFF \"centos" "Stable CentOS" ON \"mint" "Rising Star Mint" OFF 3>&1 1>&2 2>&3)exitstatus=$?if [ $exitstatus = 0 ]; then echo "Your favorite distros are:" $DISTROSelse echo "You chose Cancel."fi |
进度条

语法:
|
1
|
whiptail --gauge "<test to show>" <height> <width> <inital percent> |
实例:
|
1
2
3
4
5
6
7
|
#!/bin/bash{ for ((i = 0 ; i <= 100 ; i+=20)); do sleep 1 echo $i done} | whiptail --gauge "Please wait while installing" 6 60 0 |
Linux命令——whiptail交互式shell脚本对话框的更多相关文章
- 【读书笔记】Linux命令行与Shell脚本编程大全
Linux命令行与Shell脚本编程大全 5.2 shell 的父子关系 命令分组 Command Grouping 主要有两种形式: 一种以小括号包括,命令之间以冒号分隔.也被称为 进程列表: 注意 ...
- 自学Linux命令行与Shell脚本之路
自学Linux命令行与Shell脚本之路[第一回]:初识Linux 1.1 自学Linux Shell1.1-Linux初识 1.2 自学Linux Shell1.2-Linux目录结构 1.3 ...
- Linux命令行与shell脚本编程大全.第3版(文字版) 超清文字-非扫描版 [免积分、免登录]
此处免费下载,无需账号,无需登录,无需积分.收集自互联网,侵权通知删除. 点击下载:Linux命令行与shell脚本编程大全.第3版 (大小:约22M)
- 《Linux命令行与shell脚本编程大全 第3版》创建实用的脚本---11
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- 《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---47
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---57
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---57
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---56
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---55
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
随机推荐
- fastreport 条形码 宽度问题
fastreport 的barcode 如果不设置AutoSize 确实可以控制宽度 但是生成后 基本没办法扫 所以换个思路 直接等比缩小 设置里面的zoom 比例为0.8 针对20位左右的条形码就 ...
- hive 集群搭建
软件环境:centos7 + hadoop2.7.6 1.hive 下载 apache-hive-2.1.0-bin.tar.gz 2.copy apache-hive-2.1.0-bin.tar. ...
- 解决angular+element原有组件样式不能覆盖element自带样式问题
在对应的组件中写入 ::ng-deep + 想要改变的element组件样式名即可
- kafka-manager 创建 topic【转】
1,add cluster 添加cluster 添加cluster 选择一下kafka的版本 2,创建topic 添加topic 3,查看topic 查看topic
- ES6常用的新特性
1.Let&const <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- Delphi Mercadopago支付【支持支持获取账户信息和余额、创建商店,商店查询、创建二维码、二维码查询、创建订单、订单查询、订单退款等功能】
作者QQ:(648437169) 点击下载➨Delphi Mercadopago支付 [Delphi Mercadopago支付]支持 支持支持获取账户信息和余额.创建商店,商店查询.创建二维码.二维 ...
- 2019牛客暑期多校训练营(第二场)H Second Large Rectangle
示例一: 输入 : 1 2 01 输出: 0 示例二: 输入 : 1 3 101 输出: 1 示例三(自己自测找错误用的): 输入 : 6 610011111101111111111111111 ...
- python使用自带模块httplib进行http请求
#-*- encoding:utf-8 -*- import httplib, time class httpRequest(): def __init__(self, headers, reques ...
- Hive学习笔记(一)——概述
1.Hive是个什么玩意? Hive:由Facebook开源用于解决海量结构化日志的数据统计. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据(有规律的数据)文件映射为一张表,并提供 ...
- redis监控工具汇总
redis-stat redis-stat是一个比较有名的redis指标可视化的监控工具,采用ruby开发,基于redis的info命令来统计,不影响redis性能. docker运行 docker ...