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