Bash Whiptail ping 进度条
Bash Whiptail ping progress bar
我正在尝试使用 Whiptail 制作一个进度条,它可以正确跟踪 wget ping 的进度。
我的目标是创建一个脚本,通过对 google.com 执行 ping 命令来测试您的互联网,当发生这种情况时,它会向您显示使用 whiptail 的进度,然后如果您有互联网,它会发送给您一个 msgbox 否则它会显示一个是或否 whiptail 会问你是否要继续。
我目前的尝试:
#!/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
我找到了一个可行的方法
更新的解决方案
#!/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
我正在尝试使用 Whiptail 制作一个进度条,它可以正确跟踪 wget ping 的进度。
我的目标是创建一个脚本,通过对 google.com 执行 ping 命令来测试您的互联网,当发生这种情况时,它会向您显示使用 whiptail 的进度,然后如果您有互联网,它会发送给您一个 msgbox 否则它会显示一个是或否 whiptail 会问你是否要继续。
我目前的尝试:
#!/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
我找到了一个可行的方法
更新的解决方案
#!/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