Interview Scripting (Bash, Groovy)

How would you write a script to retry a flaky command with a delay? [Advanced]

Answer

I write retries as a loop with a maximum attempt count, delay, and clear logging. The script should return success as soon as the command succeeds and return nonzero after all attempts fail.

Technical explanation

Retries are appropriate for transient failures, not deterministic errors such as invalid credentials or bad syntax.

Use exponential backoff for overloaded remote systems.

Make commands idempotent before retrying them, especially for writes or deployments.

Hands-on example

retry() {
local max=${1}; shift
local delay=${1}; shift
local attempt
for ((attempt=1; attempt<=max; attempt++)); do
"$@" && return 0
echo "attempt $attempt/$max failed: $*" >&2
sleep "$delay"
done
return 1
}
retry 5 3 curl -fsS https://example.com/health
Preparing for an interview?

Check how well your resume matches the role with our free resume checker— match score, ATS check, and the skills you're missing.

More Scripting (Bash, Groovy) interview questions

← All Scripting (Bash, Groovy) questions