Interview Scripting (Bash, Groovy)

Why should you quote variables, and what bug does unquoting cause? [Basic]

Answer

Variables should usually be quoted to prevent word splitting and pathname expansion. The common bug is that a value containing spaces, newlines, or wildcard characters becomes multiple arguments or expands into matching files.

Technical explanation

Unquoted variables are split using IFS and then glob-expanded, which can corrupt filenames, delete the wrong files, or break commands.

Quoting preserves the value as one argument while still allowing variable expansion.

The main exceptions are deliberate word splitting with arrays or controlled glob patterns, where the intent should be obvious.

Hands-on example

file="build output/*.log"

rm $file # dangerous: word splitting and globbing can change targets

rm -- "$file" # treats the variable as one literal pathname

args=(--env "prod blue" --replicas 3)

kubectl rollout restart deployment/api "${args[@]}

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