建立互動式shell指令碼對話方塊
當你在終端環境下安裝新的軟體時,你可以經常看到資訊對話方塊彈出,需要你的輸入,比如:RHEL/
自帶的setup,對話方塊的型別有密碼箱、檢查表、選單等等。他們可以引導你以一種直觀的方式輸入必要的資訊,使用這樣的使用者友好的對話方塊的好處是顯而易見的。
如下圖所示:
當你寫一個互動式
,你可以使用這樣的對話方塊來接受使用者的輸入。whiptail可以在shell
中建立基於終端的對話方塊,訊息框的過程,類似於Zenity或xdialog GUI指令碼程式碼。whiptail預先安裝在所有的Linux釋出版本中。
建立一個訊息框
一個訊息框中顯示一個確認按鈕繼續任意的文字訊息。
語法:
whiptail --title "<message box title>" --msgbox "<text to show>" <height> <width>
例項:
#!/bin/bash whiptail --title "Test Message Box" --msgbox "Create a message box with whiptail. Choose Ok to continue." 10 60
建立一個yes/no對話方塊
使用者輸入yes或no的對話方塊。
語法:
whiptail --title "<dialog box title>" --yesno "<text to show>" <height> <width>
例項:
#!/bin/bash if (whiptail --title "Test 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
或者,你可以是“--yes-button” ,"--no-button"選項。
#!/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 "<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
建立一個密碼框
當使用者需要輸入敏感資訊時密碼框是有用的。
語法:
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
建立一個選單欄
當你想讓使用者選擇一個任意數量的選擇中,你可以使用選單框。
語法:
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
建立radiolist對話方塊
語法:
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
建立一個表對話方塊
當你想讓使用者選擇一個列表中選擇多個選項的清單對話方塊是有用的,radiolist對話方塊,只允許選擇一個。
語法:
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從標準輸入讀取一個百分數(0~100),顯示一個表內相應的計數。
語法:
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
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2903274/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 互動媒體日常——互動漫畫之對話方塊互動
- shell指令碼-免互動指令碼
- shell擴充套件——免互動指令碼套件指令碼
- linux透過shell指令碼實現ssh互動式自動化Linux指令碼
- Dialog對話方塊
- 規定對話方塊
- 登入對話方塊
- flutter demo (四):對話方塊Flutter
- Flutter Widgets 對話方塊-DialogFlutter
- DialogPane對話方塊佈局
- React中的模式對話方塊React模式
- Qt 對話方塊新增工具欄QT
- 0x7_對話方塊
- java Swing詢問對話方塊Java
- 在 Flutter 使用 GetX 對話方塊Flutter
- 訊息對話方塊 confirm() prompt()
- SAP Spartacus 自定義Popover指令,如何實現彈出對話方塊自動關閉功能
- VUE:點選開啟的對話方塊外面時,對話方塊總是被關閉Vue
- Linux通過Shell指令碼命令修改密碼不需要互動Linux指令碼密碼
- 直播原始碼網站,實現對話方塊的左滑動刪除原始碼網站
- 如何自學qt(4)——對話方塊QT
- shell指令碼正規表示式指令碼
- shell指令碼技巧—建立和清空檔案指令碼
- 直播系統程式碼,自定義平臺私聊對話方塊
- 對話式互動技術原理及流程揭祕
- flutter佈局-7-About對話方塊Flutter
- JavaFX 如何使用內建的對話方塊Java
- shell指令碼(14)-正規表示式指令碼
- w10系統對話方塊這麼變小_w10系統對話方塊如何縮小
- 直播視訊app原始碼,底部彈出的列表對話方塊APP原始碼
- Android小記-仿淘寶聯動地址選擇對話方塊Android
- [WPF]動手寫一個簡單的訊息對話方塊
- paramiko建立可互動的ssh會話會話
- 一對一直播app開發,自定義彈出對話方塊的樣式APP
- shell指令碼指令碼
- [開發教程]第31講:Bootstrap對話方塊boot
- Element-Ui元件(三十八)Dialog 對話方塊UI元件
- Flutter 23: 圖解自定義 Dialog 對話方塊Flutter圖解