云网牛站
所在位置:首页 > Linux命令 > 怎么使用Bash命令行脚本显示对话框

怎么使用Bash命令行脚本显示对话框

2017-10-20 15:38:29作者:Linux编辑稿源:topspeedsnail

下面我们介绍两个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

怎么使用Bash命令行脚本显示对话框

 

创建带Yes\No的对话框

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

怎么使用Bash命令行脚本显示对话框

 

创建带输入的对话框

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

echo $input

怎么使用Bash命令行脚本显示对话框

 

完整的一个脚本示例:

#!/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

怎么使用Bash命令行脚本显示对话框

 

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

$ zenity --help

 

whiptail

在Ubuntu上安装:

$ sudo apt-get install whiptail

 

下面提供几个例子。

创建消息框

whiptail --msgbox "some error occur" 10 40

怎么使用Bash命令行脚本显示对话框

 

创建带Yes\No的对话框

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

怎么使用Bash命令行脚本显示对话框

 

创建带默认值的输入框

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

怎么使用Bash命令行脚本显示对话框

 

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

 

创建菜单对话框

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

怎么使用Bash命令行脚本显示对话框

 

完整的一个脚本示例:

#!/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

怎么使用Bash命令行脚本显示对话框

怎么使用Bash命令行脚本显示对话框

 

注:使用man查看帮助。

Linux命令子频道
精选文章
热门文章