Shell & Bash Medium technical 1 views 1 min read

How do variables, $?, $@ and $* behave?

Peer-reviewed by HireXTech Technical Panel • Updated for 2025/2026 hiring • Editorial standards
Practise this track
Interviewer Expectations for this Question
01
Core Competency

Assesses fundamental understanding of Shell & Bash conventions, runtime behavior, and memory/performance considerations.

02
Evaluation Criteria

Hiring managers look for precision, avoidance of ambiguous jargon, and ability to explain trade-offs under real production conditions.

Comprehensive Model Answer Verified Solution

Shell variables hold strings and have no strict typing. $? is the exit status of the last command, where 0 means success.

greeting="hello"
echo "${greeting} world"

readonly PI=3.14
export PATH="$PATH:/opt/bin"

${var:-default} supplies a default without assigning, ${var:=default} assigns it, ${#var} is the length and local scopes a variable to a function.

For positional parameters, the quoting rules are crucial:

  • "$@" expands to separate, individually quoted arguments, which is correct for forwarding.
  • "$*" joins all arguments into a single string using the first character of IFS.
  • $# is the argument count, $0 the script name, $1 and onward the arguments, and shift drops the first.
for arg in "$@"; do echo "$arg"; done

Always prefer "$@". Use readonly for constants, and arrays where "${arr[@]}" is the analogue of "$@".

Candidate Response Strategy & Interview Tips

  1. Start with a concise one-sentence summary: Deliver a direct, confident answer first before expanding into nuances.
  2. Demonstrate real-world trade-offs: Discuss where this approach excels and when you would avoid it in production systems.
  3. Discuss complexity & edge cases: Proactively explain time/space complexity or boundary conditions (null values, scale limits).
  4. Prepare for interviewer follow-ups: Technical hiring panels frequently probe deeper into concurrency, backward compatibility, or alternative libraries.
Spotted an error or have an alternative solution?