tech:script_shell_interactif_avec_boites_de_dialogue_dialog_boxes_-_whiptail

Script shell interactif avec boîtes de dialogue (dialog boxes) - Whiptail

Voir :

Voir aussi :

  • dialog

Whiptail est inclus par défaut dans Debian

Exemple de script

dialogBoxes.sh

#! /bin/bash
 
set -o nounset
 
WHIPTAIL='env LANG=C whiptail'
 
#exec 2> /tmp/dlg-log-"$(date +%Y%m%d%H%M)".err
 
menu1()
{
	$WHIPTAIL --title "NODE" --menu "Choose a hostname" 25 78 16 \
	srv-1 "" \
	srv-2 "" \
	MAIN_MENU "" \
			2>/tmp/dlg-choix
}
 
menu2()
{	
	$WHIPTAIL --title "APP ON/OFF" --menu "On / Off" 25 78 16 \
	1_App_On "" \
	2_App_Off "" \
	MAIN_MENU "" \
			2>/tmp/dlg-choix
}
 
main_menu()
{	
	$WHIPTAIL --title "MAIN MENU" --menu "Select an option" 25 78 16 \
	1_Node "" \
	2_App_Activation "" \
			2>/tmp/dlg-choix
}
 
sortir()
{
	rm -f /tmp/dlg-choix
 	echo -e "\\n\\tBye !"
	exit 0
}
 
 
test_menu_option()
{
CHOIX=$(cat /tmp/dlg-choix)
rm -f /tmp/dlg-choix
 
case $CHOIX in
1_Node)
	menu1
   ;;
2_App_Activation)
	menu2
   ;;
1_App_On)
	echo "App_On ${HOST_SRV:-x}"
	sortir
   ;;
2_App_Off)
	echo "App_Off ${HOST_SRV:-x}"
	sortir
   ;;
MAIN_MENU)
	main_menu
   ;;
srv-1)
	HOST_SRV=1
	menu2
   ;;
srv-2)
	HOST_SRV=2
	menu2
   ;;
"")
	echo "Cancelled by user"
	sortir
   ;;
*)
	echo -e "Option unknown : \"${CHOIX}\""
	exit 2
   ;;
esac
}
 
main_menu
 
while true
do
	test_menu_option
done

Dialog

Exemples

(pv -n image.iso | dd of=/dev/sdb bs=1M && sync) 2>&1 | dialog --gauge "la commande dd est en cours d'exécution, merci de patienter..." 10 70 0
tech/script_shell_interactif_avec_boites_de_dialogue_dialog_boxes_-_whiptail.txt · Dernière modification : de Jean-Baptiste

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki