Practical Automation Patterns
Retry Loop
Bound Repeated Attempts
A retry loop should have a clear maximum so automation can recover from transient failures without running forever.
Program
Play the script to choose the maximum attempt count and watch the loop stop when the modeled action succeeds.
retry_loop.sh
#!/usr/bin/env bash
max_attempts=
attempt=1
result="pending"
while [ "$attempt" -le "$max_attempts" ]; do
if [ "$attempt" -eq "$max_attempts" ]; then
result="ok"
break
else
attempt=$((attempt + 1))
fi
done
echo "attempts=$attempt result=$result"
#!/usr/bin/env bash
max_attempts=
attempt=1
result="pending"
while [ "$attempt" -le "$max_attempts" ]; do
if [ "$attempt" -eq "$max_attempts" ]; then
result="ok"
break
else
attempt=$((attempt + 1))
fi
done
echo "attempts=$attempt result=$result"
retry
A retry loop repeats an operation after a failed attempt.
maximum
The maximum attempt count prevents an infinite loop.
break
`break` exits the loop immediately after success.