Mattepuffo's logo
Creare finestre di dialogo in Linux con Whiptail

Creare finestre di dialogo in Linux con Whiptail

Whiptail è un programma che ci consente di creare delle finestre di dialogo in Linux, da usare dentro i nostri script BASH.

E' molto simile ad Ncurses; in Debian è installato di default, mentre su OpenSUSE dobbiamo installarlo così:

# zypper in newt

A questo punto vediamo le varie opzioni:

$ whiptail

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

Potete vedere i vari di box disponibili; a me il tipo infobox non funziona, mentre per gli altri non ho problemi.

Ad esempio:

$ whiptail --title "Esempio msgbox" --msgbox "Questo è un esempio di msgbox." 10 100

Qui sotto un esempio di textbox che viene riempita da un file:

$ whiptail --textbox .bashrc 50 100

Qui esempio molto basico di menu:

$ whiptail --title "Menu" --menu "Scegli un'opzione" 25 78 16 \
"Back" "Ritorna al menu." \
"Azione 1" "Fai qualcosa." \

Come ultimo esempio, vediamo una checklist:

$ whiptail --title "Check list" --checklist \
"Scegli colore" 20 78 4 \
"ARANCIONE" "Il mio colore preferito" ON \
"BIANCO" "" OFF \
"VERDE" "" OFF \
"NERO" "" OFF

Questo manderà in output le voci selezionate.

Enjoy!


Share this Post

Commentami!