bash交互界面命令whiptail(消息框,提示框,输入框)

bash交互界面命令whiptail(消息框,提示框,输入框)

HELP

$ whiptail --help
Box options: 
        --msgbox <text> <height> <width>
        --yesno  <text> <height> <width>
        --infobox <text> <height> <width>
        --inputbox <text> <height> <width> [init] 
        --passwordbox <text> <height> <width> [init] 
        --textbox <file> <height> <width>
        --menu <text> <height> <width> <listheight> [tag item] ...
        --checklist <text> <height> <width> <listheight> [tag item status]...
        --radiolist <text> <height> <width> <listheight> [tag item status]...
        --gauge <text> <height> <width> <percent>
Options: (depend on box-option)
        --clear                         clear screen on exit
        --defaultno                     default no button
        --default-item <string>         set default string
        --fb, --fullbuttons             use full buttons
        --nocancel                      no cancel button
        --yes-button <text>             set text of yes button
        --no-button <text>              set text of no button
        --ok-button <text>              set text of ok button
        --cancel-button <text>          set text of cancel button
        --noitem                        don't display items
        --notags                        don't display tags
        --separate-output               output one line at a time
        --output-fd <fd>                output to fd, not stdout
        --title <title>                 display title
        --backtitle <backtitle>         display backtitle
        --scrolltext                    force vertical scrollbars
        --topleft                       put window in top-left corner
        -h, --help                      print this message
        -v, --version                   print version information

消息框

在这里插入图片描述

#!/bin/bash

scriptPath=$(cd $(dirname $0) && pwd)
cd ${scriptPath}

function messagebox() {
    # messagebox <title> [<content> [<height> [<width>]]]
    title=$1
    msgbox=$2
    height=10
    width=60
    ok_button="OK"
    if [ -n "$3" ]; then
        height=$3
    fi
    if [ -n "$4" ]; then
        width=$4
    fi
    if [ -n "$5" ]; then
        ok_button=$5
    fi
    # 消息框
    # whiptail --title "<message box title>" --msgbox "<text to show>" <height> <width>
    # whiptail --title "Test Message Box" --msgbox "Create a message box with whiptail. Choose Ok to continue." 10 60
    whiptail --title "$title" --ok-button "$ok_button" --msgbox "$msgbox"  $height $width
}

messagebox "向导" "开始配置向导" 10 60 "开始"

提示框

在这里插入图片描述

#!/bin/bash

scriptPath=$(cd $(dirname $0) && pwd)
cd ${scriptPath}

function promptbox() {
    # promptbox <title> [<content> [<height> [<width> [<yes_button> [<no_button>]]]]]
    title=$1
    yesno=$2
    height=10
    width=60
    yes_button="Yes"
    no_button="No"
    if [ -n "$3" ]; then
        height=$3
    fi
    if [ -n "$4" ]; then
        width=$4
    fi
    if [ -n "$5" ]; then
        yes_button=$5
    fi
    if [ -n "$6" ]; then
        no_button=$6
    fi

    # 提示框
    # whiptail --title "<dialog box title>" --yesno "<text to show>" <height> <width>
    #!/bin/bash if (whiptail --title "Test Yes/No Box" --yes-button "Skittles" --no-button "M&M's" --yesno "Which do you like better?" 10 60) then echo "You chose Skittles Exit status was $?." else echo "You chose M&M's. Exit status was $?." fi
    whiptail --title "$title" --yes-button "$yes_button" --no-button "$no_button" --yesno "$yesno" $height $width
    ret=$?
    return $ret
}

promptbox "提示" "是否提交您的信息" 10 60 "是" "否"
ret=$?
echo $ret

输入框

在这里插入图片描述

#!/bin/bash

scriptPath=$(cd $(dirname $0) && pwd)
cd ${scriptPath}

function inputbox() {
    # inputbox <title> [<content> [<height> [<width> [<default>]]]]
    title=$1
    inputbox=$2
    height=10
    width=60
    default=$5
    if [ -n "$3" ]; then
        height=$3
    fi
    if [ -n "$4" ]; then
        width=$4
    fi
    # 输入框
    # whiptail --title "<input box title>" --inputbox "<text to show>" <height> <width> <default-text>
    #!/bin/bash PET=$(whiptail --title "Test Free-form Input Box" --inputbox "What is your pet's name?" 10 60 Wigglebutt 3>&1 1>&2 2>&3) exitstatus=$? if [ $exitstatus = 0 ]; then echo "Your pet name is:" $PET else echo "You chose Cancel." fi

    value=$(whiptail --title "$title" --inputbox "$inputbox" $height $width "$default" 3>&1 1>&2 2>&3)
    exitstatus=$?
    # echo "exitstatus:$exitstatus"
    if [ $exitstatus = 0 ]; then
        echo "$value"
    fi
    return $((10#${exitstatus}))

}

value=$(inputbox "联系方式" "输入您的联系方式" 10 60 "默认内容")
ret=$?
echo $value
echo $ret

密码输入框

在这里插入图片描述

#!/bin/bash

scriptPath=$(cd $(dirname $0) && pwd)
cd ${scriptPath}

function passwordbox() {
    # inputbox <title> [<content> [<height> [<width> [<default>]]]]
    title=$1
    inputbox=$2
    height=10
    width=60
    default=$5
    if [ -n "$3" ]; then
        height=$3
    fi
    if [ -n "$4" ]; then
        width=$4
    fi

    # 密码输入框
    # whiptail --title "<password box title>" --passwordbox "<text to show>" <height> <width>
    #!/bin/bash PASSWORD=$(whiptail --title "Test 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:" $PASSWORD else echo "You chose Cancel." fi

    value=$(whiptail --title "$title" --passwordbox "$inputbox" $height $width "$default" 3>&1 1>&2 2>&3)
    exitstatus=$?
    # echo "exitstatus:$exitstatus"
    if [ $exitstatus = 0 ]; then
        echo "$value"
    fi
    return $((10#${exitstatus}))
}

value=$(passwordbox "登录密码" "请输入您的登录免密" 10 60 "admin")
ret=$?
echo $value
echo $ret

其他

#!/bin/bash

scriptPath=$(cd $(dirname $0) && pwd)
cd ${scriptPath}

# 菜单栏
# whiptail --title "<menu title>" --menu "<text to show>" <height> <width> <menu height> [ <tag> <item> ] . . .
#!/bin/bash OPTION=$(whiptail --title "Test Menu Dialog" --menu "Choose your option" 15 60 4 \ "1" "Grilled Spicy Sausage" \ "2" "Grilled Halloumi Cheese" \ "3" "Charcoaled Chicken Wings" \ "4" "Fried Aubergine" 3>&1 1>&2 2>&3) exitstatus=$? if [ $exitstatus = 0 ]; then echo "Your chosen option:" $OPTION else echo "You chose Cancel." fi

# 单选框
# whiptail --title "<radiolist title>" --radiolist "<text to show>" <height> <width> <list height> [ <tag> <item> <status> ] . . .
#!/bin/bash DISTROS=$(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:" $DISTROS else echo "You chose Cancel." fi

# 多选框
# whiptail --title "<checklist title>" --checklist "<text to show>" <height> <width> <list height> [ <tag> <item> <status> ] . . .
#!/bin/bash DISTROS=$(whiptail --title "Test 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:" $DISTROS else echo "You chose Cancel." fi

# 进度条
# whiptail --gauge "<test to show>" <height> <width> <inital percent>
#!/bin/bash { for ((i = 0 ; i <= 100 ; i+=20)); do sleep 1 echo $i done } | whiptail --gauge "Please wait while installing" 6 60 0
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值