Bash Whiptail ping progress bar



我正在尝试使用Whippail制作一个进度条,该进度条可以正确跟踪wget ping的进度。

我的目标是创建一个脚本,通过对google.com进行ping来测试你的互联网,当这种情况发生时,它会向你显示使用whiptail的进度,然后如果你上网了,它会给你发送一个消息框,否则它会显示一个"是"或"否"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

相关内容

  • 没有找到相关文章

最新更新