$@
is a list of all the parameters passed in to a function$#
is the number of parameters passed in to a function
function idk() {
echo $@
echo $#
}
idk hey
1
hey
idk hey yall
2
hey yall
$?
is the exit status of the last ran function
which cat
/bin/cat
echo $?
0 # This is good
which
echo $?
1 # This is bad (an error because no argument was provided)
+
zsh: command not found: +
echo $?
127 # This is bad too (127 means "command not found")
$1
,$2
, ..., represent variables used inside of functions.
myecho() { echo $1 }
myecho "hey"
"hey"