Interview Scripting (Bash, Groovy)

What does ${var:?message} do, and when would you use it? [Intermediate]

Answer

${var:?message} fails immediately with the message if var is unset or empty. I use it for required inputs such as environment, cluster, database URL, or credentials reference.

Technical explanation

It is a concise precondition check and works well with set -u.

The script exits or returns depending on context, so it prevents continuing with missing critical data.

Use ${var?message} if an empty string is allowed but an unset variable is not.

Hands-on example

#!/usr/bin/env bash

set -euo pipefail

: "${CLUSTER:?CLUSTER is required}"

: "${NAMESPACE:?NAMESPACE is required}"

kubectl --context "$CLUSTER" -n "$NAMESPACE" get pods

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