I am trying to make a progress bar using Whiptail that can track the progress of the wget ping correctly.
My goal is to create a script that test your internet by making a ping to google.com and while this is happening that is shows you the progress using whiptail and then after that if you got internet it send you a msgbox else it will show you a yes or no whiptail that will ask you if you what to continue.
My current try:
#!/bin/bash
#Make ping and display proces
#Progres bar GUI using whiptail(Native Gui)
while true do
# Check internet status, ping google.com
wget -q --tries=20 --timeout=10 --spider http://google.com
done| whiptail --title "Internet Validation" --gauge "${ping}" 6 60 0
#If for validating Internet conexion
if [ $? -eq 0 ]; then
#If succes int variable change to Online
int="Online"
#And Whiptail GUI disaply confimacion box
whiptail --title "Succes" --msgbox "Internet Status: $int. Choose Ok to continue." 10 60
#Internet validation opcion for when there is not internet
else
#Int Variable change to Offlien
int="Offline"
#Whiptail display Internet Status: Offline and ask if it whants to continue
if (whiptail --title "Conexion Error" --yesno "Internet Status: $int, Continue?" 10 60) then
#Function to install Nos Software
$(function)
else
#Whiptail display installetion cancel
whiptail --title "Installation" --msgbox "The Installation has been cancel." 10 60
fi
fi
#Save in logfile Status of internet
echo "`date -u` 'Internet Status: $int'" >> logfile.txt
I found a way that works
Updated solution
#!/bin/bash
#Progres bar GUI using whiptail(Native Gui)
{
#Start progress bar in 0
i="0"
# Maximum number to try.
((count = 100))
#Make ping and display proces
while [[ $count -ne 0 ]] ; do
# Check internet status, ping google.com; ping once
ping -c 1 google.com
rc=$?
# If okay, flag to exit loop.
if [[ $rc -eq 0 ]] ; then
((count = 1))
fi
# So we don't go forever.
((count = count - 1))
#For progress bar
sleep 1
echo $i
i=$(expr $i + 1)
done
# If it is done then display 100%
echo 100
# Give it some time to display the progress to the user.
sleep 2
#Display Ping progress bar
} | whiptail --title "Internet Validation" --gauge "validating Conexion" 6 60 0
#If for validating Internet conexion
if [ $? -eq 0 ]; then
#If succes int variable change to Online
int="Online"
#And Whiptail GUI disaply confimacion box
whiptail --title "Succes" --msgbox "Internet Status: $int. Choose Ok to continue." 10 60
#Internet validation opcion for when there is not internet
else
#Int Variable change to Offlien
int="Offline"
#Whiptail display Internet Status: Offline and ask if it whants to continue
if (whiptail --title "Conexion Error" --yesno "Internet Status: $int, Continue?" 10 60) then
#Function to install Nos Software
$(function)
else
#Whiptail display installetion cancel
whiptail --title "Installation" --msgbox "The Installation has been cancel." 10 60
fi
fi
#Save in logfile Status of internet
echo "`date -u` 'Internet Status: $int'" >> logfile.txt
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.