Retry a Bash command with timeout
How to retry a bash command until its status is ok or until a timeout is reached?
My best shot (I'm looking for something simpler):
NEXT_WAIT_TIME=0 COMMAND_STATUS=1 until [ $COMMAND_STATUS -eq 0 || $NEXT_WAIT_TIME -eq 4 ]; do command COMMAND_STATUS=$? sleep $NEXT_WAIT_TIME let NEXT_WAIT_TIME=NEXT_WAIT_TIME+1 done
You can simplify things a bit by putting command right in the test and doing increments a bit differently. Otherwise the script looks fine:
NEXT_WAIT_TIME=0 until command || [ $NEXT_WAIT_TIME -eq 4 ]; do sleep $(( NEXT_WAIT_TIME++ )) done