dialog

selection.sh 
 #!/bin/bash
# while-menu-dialog: a menu driven system information program

DIALOG_CANCEL=1
DIALOG_ESC=255
HEIGHT=0
WIDTH=0

display_result() {
 dialog --title "$1" \
 --no-collapse \
 --msgbox "$result" 0 0
}

while true; do
 exec 3>&1
 selection=$(dialog \
 --backtitle "System Information" \
 --title "Menu" \
 --clear \
 --cancel-label "Exit" \
 --menu "Please select:" $HEIGHT $WIDTH 4 \
 "1" "Display System Information" \
 "2" "Display Disk Space" \
 "3" "Display Home Space Utilization" \
 2>&1 1>&3)
 exit_status=$?
 exec 3>&-
 case $exit_status in
 $DIALOG_CANCEL)
 clear
 echo "Program terminated."
 exit
 ;;
 $DIALOG_ESC)
 clear
 echo "Program aborted." >&2
 exit 1
 ;;
 esac
 case $selection in
 0 )
 clear
 echo "Program terminated."
 ;;
 1 )
 result=$(echo "Hostname: $HOSTNAME"; uptime)
 display_result "System Information"
 ;;
 2 )
 result=$(df -h)
 display_result "Disk Space"
 ;;
 3 )
 if [[ $(id -u) -eq 0 ]]; then
 result=$(du -sh /home/* 2> /dev/null)
 display_result "Home Space Utilization (All Users)"
 else
 result=$(du -sh $HOME 2> /dev/null)
 display_result "Home Space Utilization ($USER)"
 fi
 ;;
 esac
done 
 zenity 
 
 who_is.sh 
 #!/bin/bash
# Get domain name
_zenity="/usr/bin/zenity"
_out="/tmp/whois.output.$$"
domain=$(${_zenity} --title "Enter domain" \
	 --entry --text "Enter the domain you would like to see whois info" )
 
if [ $? -eq 0 ]
then
 # Display a progress dialog while searching whois database
 whois $domain | tee >(${_zenity} --width=200 --height=100 \
 				 --title="whois" --progress \
			 --pulsate --text="Searching domain info..." \
 --auto-kill --auto-close \
 --percentage=10) >${_out}
 
 # Display back output
 ${_zenity} --width=800 --height=600 \
	 --title "Whois info for $domain" \
	 --text-info --filename="${_out}"
else
 ${_zenity} --error \
	 --text="No input provided"
fi 
 More Tutorials 
 
 10 Tools To Add Some Spice To Your UNIX/Linux Shell Scripts