Updated: 06 February 2025
File my_script.sh
#!/bin/bash
b_func(){
echo ------
for a in "$@"; do
echo "$a"
done
echo ------
}
a_func(){
# name of script or shell
echo "$0"
# 1st arg
echo "$1"
# 2nd arg
echo "$2"
# num of args
echo $#
# all args
echo "$@"
# all args
echo "$*"
# probably what you want
b_func "$@"
b_func $@
b_func "$*"
b_func $*
}
a_func 'a b' c
false
# last command exit status
echo $?
Result of running ./my_script
./my_script.sh
a b
c
2
a b c
a b c
------
a b
c
------
------
a
b
c
------
------
a b c
------
------
a
b
c
------
1
See https://www.gnu.org/software/bash/manual/html_node/Special-Parameters.html