Interview Scripting (Bash, Groovy)

What are the positional parameters $1, $2, and what are $@, $#, $0, $$, $?, $!? [Basic]

Answer

$1, $2, and so on are positional arguments. $@ represents all arguments, $# is the argument count, $0 is the script name, $$ is the current shell PID, $? is the last exit code, and $! is the PID of the most recent background command.

Technical explanation

These special parameters are central to writing reusable command-line scripts.

Use "$@" to forward arguments safely while preserving argument boundaries.

Capture $? immediately after the command you care about, because any later command overwrites it.

Hands-on example

#!/usr/bin/env bash

echo "script: $0"

echo "first arg: ${1:-missing}"

echo "arg count: $#"

for arg in "$@"; do echo "arg=[$arg]"; done

sleep 30 &

echo "background pid: $!

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