Bash special variable:$#, $$, $@, $*, $0, $?

special variable:$#, $$, $@, $*, $0, $?

1, $#
The number of arguments supplied to a script.
eg:
if [ "$#" -eq 0 ]; then
  echo "you did not pass any parameter"
fi

echo "Total Number of Parameters : $#"
Total Number of Parameters : 2

2, $$
The process number of the current shell. For shell scripts, this is the process ID under which they are executing.

3, $@
the "$@" special parameter takes the entire list and separates it into separate arguments.
All the arguments are individually double quoted. If a script receives two arguments, $@ is equivalent to $1 $2.

4, $*
the "$*" special parameter takes the entire list as one argument with spaces between.
All the arguments are double quoted. If a script receives two arguments, $* is equivalent to $1 $2.

5, $0
The filename of the current script.

6, $?
represents the exit status of the previous command.
0 if they were successful, and 1 if they were unsuccessful.
eg:
touch test.ksh
write in test.ksh as below:
-----------------------
#create a stored procedure, name do_feed_processing.
do_feed_processing() {
  ....
  return 0
}
#execute do_feed_processing
do_feed_processing
#print execution result
echo $?
-----------------------
$ sh test.ksh
$ 0

猜你喜欢

转载自bonnietang.iteye.com/blog/2359823