Terminal

如何創建基於終端的 GUI?

  • November 27, 2019

我正在尋找創建一個基於終端的環境來適應我的Bash腳本。我希望它看起來像這樣:

Debian 安裝

dialog --backtitle "Package configuration" \
      --title "Configuration sun-java-jre" \
      --yesno "\nBla bla bla...\n\nDo you accept?" 10 30

在此處輸入圖像描述

使用者響應儲存在退出程式碼中,因此可以像往常一樣列印:(echo $?注意這0意味著“是”,1在 shell 世界中是“否”)。


關於評論部分的其他問題:

  • 將某些命令的輸出放入對話框只需使用命令替換機制$(),例如:
dialog --backtitle "$(echo abc)" --title "$(cat file)" ...
  • 為使用者提供多種選擇,您可以使用--menuoption 而不是--yesno
  • 要將使用者選擇的輸出儲存到變數中,需要通過或手動使用--stdout選項或更改輸出描述符,例如:--output-fd
output=$(dialog --backtitle "Package configuration" \
               --title "Configuration sun-java-jre" \
               --menu "$(parted -l)" 15 40 4 1 "sda1" 2 "sda2" 3 "sda3" \
        3>&1 1>&2 2>&3 3>&-)
echo "$output"

這個技巧是必要的,因為dialog預設情況下輸出到標準錯誤,而不是標準輸出。

和往常一樣,man dialog是你的朋友。

引用自:https://unix.stackexchange.com/questions/285777