linux输入命令对话框,怎么使用Bash命令行脚本显示对话框

下面我们介绍两个Bash Shell对话框工具:zenity、whiptail,这两个工具提供了更人性化的交互方式。这两个工具的不同在于,Zenity使用GTK创建对话框,而whiptail在终端命令行内创建对话框。

zenity

在Ubuntu上安装:

$ sudo apt-get install zenity

下面提供几个例子。

创建消息框

zenity --info --title "hello you" --text "some error occur" --width=200 --height=150

90f9ab0a0d9643e6207bca7b075d4cb1.png

创建带Yes\No的对话框

zenity --question --text "Are you sure?" --ok-label "Yes" --cancel-label="No"

372c7136165e092e97252bb839071821.png

创建带输入的对话框

input=$(zenity --entry --title "Input" --text "type some text" --width=200 --height=150)

echo $input

b4c096e3c11986cc49fdab06f3b08b94.png

完整的一个脚本示例:

#!/bin/bash

zenity --question --text "continue?"

[ $? -eq 0 ] || exit 1

first_value=$(zenity --entry --title "Input" --text "type some text" --width=200 --height=150)

second_value=$(zenity --entry --title "Input" --text "type some text" --width=200 --height=150)

zenity --info --title "input value" --text "${first_value} ${second_value}" --width=300 --height=100

d2fb9fcc3ea3c876fe58443622b52e19.png

最后,不要忘了使用帮助:

$ zenity --help

whiptail

在Ubuntu上安装:

$ sudo apt-get install whiptail

下面提供几个例子。

创建消息框

whiptail --msgbox "some error occur" 10 40

b855df8036c5577b42f2469718d3a338.png

创建带Yes\No的对话框

whiptail --yes-button "Yes" --no-button "No" --title "are you sure?" --yesno "are you stupid" 10 30

4a149ff2dc3a74d9b84892d1d14d659b.png

创建带默认值的输入框

whiptail --inputbox "input your number" 10 30 "100"

1d31fcc8e0954fc051834c16e5f1868c.png

注意:不能使用var=$(whiptail …)获得输入框的文本(对话框根本不会显示)。正确做法,使用stdout/stderr,在whiptail命令最后加3>&1 1>&2 2>&3。

创建菜单对话框

whiptail --menu "choose one" 20 50 10 1 "menu1" 2 "menu2" 3 "menu3"

d7b5f7ced2f9e8f3d25349071ddeacc3.png

完整的一个脚本示例:

#!/bin/bash

MY_PATH=$(whiptail --title "get folder size" --inputbox "input" 10 30 "/home" 3>&1 1>&2 2>&3)

size=$(du -hs "$MY_PATH" | awk '{print $1}')

whiptail --title "info" --msgbox "${size}" 10 40

1345a5ff23c86d98aa97a109fcc9a9be.png

d68ec15b924d699d6ecf507a945e790b.png

注:使用man查看帮助。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值