The shell command and any arguments to that command appear as numbered shell variables: $0 has the string value of the command itself, something like script, ./script, /home/user/bin/script or whatever. Any arguments appear as "$1", "$2", "$3" and so on.  The count of arguments is in the shell variable "$#".
- $0has the string value of the command itself, something like- script,- ./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 $#.
 
                