Wednesday, July 20, 2011

Shell Variables in Linux and UNIX

The shell sets some environment variables according to the command line arguments specified:
The name the script was invoked with. This may be a basename without directory component, or a path name. This variable is not changed with subsequent shift commands.
$1,$2,$3, ...
The first, second, third, ... command line argument, respectively. The argument may contain whitespace if the argument was quoted, i.e. "two words".
Number of command line arguments, not counting the invocation name $0
"$@" is replaced with all command line arguments, enclosed in quotes, i.e. "one", "two three", "four". Whitespace within an argument is preserved.
$* is replaced with all command line arguments. Whitespace is not preserved, i.e. "one", "two three", "four" would be changed to "one", "two", "three", "four".
This variable is not used very often, 
"$@" is the normal case, because it leaves the arguments unchanged.