Bash Timeout Loops

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

Internal

Overview

Pure timeout.

...
local timeout_sec=...
local t0=$(date '+%s')
local remaining=$(expr ${timeout_sec} + ${t0} - $(date '+%s'))
while [[ ${remaining} -gt 0 ]]; do
    debug "remaining ${remaining} secs ..."
    sleep 1
    remaining=$(expr ${timeout_sec} + ${t0} - $(date '+%s'))
done

Loop until a command succeeds or a timeout occurs.

x=1
test-command
while [ ! $? -eq 0 ]
do
    sleep 10
    x=$(( $x + 1 ))

    if [ $x -gt 100 ]
    then
       exit 255
    fi

    test-command
done