Tutorial
In last tutorial about shell function, you use “$1” represent the first argument passed to function_A. Moreover, here are some special variables in shell:
-
$0
- The filename of the current script. -
$n
- The Nth argument passed to script was invoked or function was called. -
$#
- The number of argument passed to script or function. -
$@
- All arguments passed to script or function. -
$*
- All arguments passed to script or function. -
$?
- The exit status of the last command executed. -
$$
- The process ID of the current shell. For shell scripts, this is the process ID under which they are executing. -
$!
- The process number of the last background command.
Example:
#!/bin/bash
echo "Script Name: $0"
function func {
for var in $*
do
let i=i+1
echo "The \$${i} argument is: ${var}"
done
echo "Total count of arguments: $#"
}
func We are argument
$@
and $*
have different behavior when they were enclosed in double quotes.
#!/bin/bash
function func {
echo "--- \"\$*\""
for ARG in "$*"
do
echo $ARG
done
echo "--- \"\$@\""
for ARG in "$@"
do
echo $ARG
done
}
func We are argument
Exercise
There is no exercise for this section.