what is difference between $@ and $* in UNIX Shell script
Answer Posted / alf55
There is a difference between using $@ and using "$@". The
first is the same as using $*, while the latter is what was
being described ad $@. It only handles the arguments
correctly when used as "$@". However, you will not see where
the arguments are changing in its simple usage in a print.
echo "arguments are:"; for arg in "$@"; do echo "
${arg}"; done
Will show each argument on a new line indented by four spaces.
Here is an example:
[code]
bash$ function show_simple_args
> {
> echo "There are $# arguments passed, can you find
them correctly?"
> echo "using \$*:"
> echo $*
> echo "using \$@:"
> echo $@
> echo "using \"\$@\":"
> echo "$@"
> echo "using for loop with \$*:"
> echo "arguments are:"; for arg in $*; do echo "
${arg}"; done
> echo "using for loop with \$@:"
> echo "arguments are:"; for arg in $@; do echo "
${arg}"; done
> echo "using for loop with \"\$@\":"
> echo "arguments are:"; for arg in "$@"; do echo "
${arg}"; done
> }
bash$
bash$ show_simple_args "arg 1" "arg 2" "arg 3" "arg 4"
There are 4 arguments passed, can you find them correctly?
using $*:
arg 1 arg 2 arg 3 arg 4
using $@:
arg 1 arg 2 arg 3 arg 4
using "$@":
arg 1 arg 2 arg 3 arg 4
using for loop with $*:
arguments are:
arg
1
arg
2
arg
3
arg
4
using for loop with $@:
arguments are:
arg
1
arg
2
arg
3
arg
4
using for loop with "$@":
arguments are:
arg 1
arg 2
arg 3
arg 4
bash$
[/code]
| Is This Answer Correct ? | 9 Yes | 1 No |
Post New Answer View All Answers
Why bash is used in linux?
Where is command history stored in linux?
What is linux pwd (print working directory) command?
What is the programming language for linux?
What is df -h command?
Explain about lprm job number?
What is the command to check cpu speed in linux?
What is the difference between find and locate command in linux?
How do I find the umask value in linux?
How do you execute more than one command or program from a single command line entry?
Describe the mknod command and when you’d use it.
What does grep command do?
How do I find the linux version?
What does comm do and how to use it?
What does curl command do in linux?