使用 Whiptail 創建交互式 shell 腳本


Whiptail 是一個工具,可讓您顯示來自 shell 腳本的對話框。這使得 shell 腳本看起來更酷、更專業,同時仍然提供廣泛的功能。

在本模塊中,您將學習如何使用 鞭尾 使用 shell 腳本讓它們變得更好!

附上鞭尾

安裝鞭尾很容易。要安裝,請鍵入:

$ sudo apt install whiptail

鞭尾箱

鞭尾魚有許多不同類型的盒子可供選擇。以下是whiptail 提供的一些更重要的功能。

1.添加一個是/否框

生成這樣一個框的語法是:

$ whiptail --yesno [TEXT] [HEIGHT] [WIDTH]

是/否框允許您根據用戶選擇控制執行流程。

提示與否

如果用戶選擇是,whiptail 返回值 1。如果用戶選擇否,則返回值 0。如果發生錯誤或用戶在未指定選擇的情況下退出,則返回 -1。

2.消息框

生成消息框的語法是:

$ whiptail --msgbox [TEXT] [HEIGHT] [WIDTH]

消息框是[OK]它與是/否框非常相似,只是它只有按鈕。在提示時輸入它,shell 腳本將繼續執行。

消息框

3.輸入框

輸入框是whiptail 最重要的功能之一。創建輸入框的語法是:

$ whiptail --inputbox [TEXT] [HEIGHT] [WIDTH] [INIT]

我們還啟用了滾動功能,以便在輸入字符串長於對話框寬度時輸入字段滾動。您還可以指定一個字符串(INIT),用於初始化輸入框。此外,如果出現拼寫錯誤,用戶可以使用退格鍵更正輸入。

輸入框輸入框

默認情況下,消息 標準誤 但是您也可以將輸出存儲在一個變量中並在您的 shell 腳本中使用它!

4. 密碼箱

密碼框與輸入框非常相似,只是輸入不會反映給用戶。它的語法也類似於輸入框。

$ whiptail --passwordbox [TEXT] [HEIGHT] [WIDTH] [INIT]

您也可以使用 INIT 來指定“默認密碼”,但非常不鼓勵這樣做。

密碼框密碼框

4.菜單框

顧名思義,菜單框提供了一個可供選擇的選項列表。相同的語法是:

$ whiptail --menu [TEXT] [HEIGHT] [WIDTH] [MENU HEIGHT] [TAG] [ITEM] 

您還需要在此處指定 MENU HEIGHT,它決定了 Prompt 菜單中顯示的項目數。接下來,我們需要指定一個ITEM 和一個TAG 來標識該項目。Whiptails 是可滾動的,因此您可以指定任何數字

菜單菜單

退出時,whiptail 會將選中的 TAG 更改為 標準誤.

5. 其他箱子

鞭尾魚仍然有各種盒子,例如:

  • 消息窗口
  • 列錶框
  • 單箱
  • 樂器盒

您可以使用 man 命令獲得這些內容的完整概述。

$ man whiptail

鞭尾選項

您可以使用標誌來進一步自定義whiptail 提示。

  • -清除 :退出時在屏幕屬性中清除屏幕。如果啟用了備用屏幕切換,這對 xterm(和後代)不起作用。因為當時的俚語是寫(並清除)備用屏幕。
  • –默認沒有 :打開一個對話框,光標位於“否”按鈕上。
  • – 是按鈕 [TEXT] : change 是按鈕文本
  • – 沒有按鈕 [TEXT] :無需按鈕即可更改文本
  • – 在項目中 :菜單、清單和單選列表小部件僅顯示標籤,不顯示項目字符串。菜單小部件仍然需要指定一些項目,但列表和單選只需要標籤和狀態。
  • – 標籤 :不在菜單、清單和單選列表小部件中顯示標籤。
  • – 輸出 FD [FD] :直接輸出whiptail到特定的文件描述
  • -標題 [TEXT] : 設置框的標題

結論是

因此,在本模塊中,您學習瞭如何有效地使用whiptail 編寫有效的shell 腳本。這使 shell 腳本具有非常專業的外觀並改善了用戶體驗。您還可以從手冊頁進一步探索該工具!