Terminal
如何創建基於終端的 GUI?
我正在尋找創建一個基於終端的環境來適應我的Bash腳本。我希望它看起來像這樣:
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)" ...
- 為使用者提供多種選擇,您可以使用
--menu
option 而不是--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
是你的朋友。