Variable Meaning -------- ------- $0 Filename of script $1 - $9 Positional parameters #1 - #9 ${10} Positional parameter #10 $# Number of positional parameters ${#*} Number of positional parameters ${#@} Number of positional parameters "$*" All the positional parameters (as a single word) * "$@" All the positional parameters (as separate strings) $? Return value $$ Process ID (PID) of script $- Flags passed to script (using set) $_ Last argument of previous command $! Process ID (PID) of last job run in background * Must be quoted, otherwise it defaults to $@.