Bash special variable:$#, $$, $@, $*, $0, $?
程序员文章站
2022-06-01 17:23:50
...
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
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
下一篇: Python3 几个常见问题