The shell command and any arguments to that command appear as numbered shell variables:
$0has the string value of the command itself, something likescript,./script,/home/user/bin/scriptor whatever.- Any
arguments appear as
"$1","$2","$3"and so on. The count of arguments is in the shell variable"$#".
Common ways of dealing with this involve shell commands getopts and shift. getopts is a lot like the C getopt() library function. shift moves the value of $2 to $1, $3 to $2, and so on; $# gets decremented. Code ends up looking at the value of "$1", doing things using a case…esac to decide on an action, and then doing a shift to move $1 to the next argument. It only ever has to examine $1, and maybe $#.