Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...


what is difference between $@ and $* in UNIX Shell script

Answers were Sorted based on User's Feedback



what is difference between $@ and $* in UNIX Shell script..

Answer / yogesh malkoti

In a shell script :

$@: each quoated string treated as a separate argument
while gving at command line.

$*: stores the complete set of positional parameters as a
single string

Is This Answer Correct ?    45 Yes 3 No

what is difference between $@ and $* in UNIX Shell script..

Answer / rajkapooor

$@ all quated string in command line treated as seprate
argument
$* stores all argument as a single argument

Is This Answer Correct ?    12 Yes 2 No

what is difference between $@ and $* in UNIX Shell script..

Answer / 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

More Linux Commands Interview Questions

How do I permanently delete linux history?

0 Answers  


What are the basic commands for user management?

0 Answers  


What is DISM command?

0 Answers  


How to know linux os is 32 bit or 64 bit?

0 Answers  


What is the bash in linux?

0 Answers  


What are linux commands useful?

0 Answers  


How lilo is useful in linux?

0 Answers  


How do I find previous commands in linux?

0 Answers  


How can I know my linux os is 32 bit or 64 bit? and How can i know my CPU is 32 bit or 64 bit in linux machine environment.?

7 Answers  


How do I move to root in linux?

0 Answers  


Explain the free command.

0 Answers  


What is ls command and what it does?

0 Answers  


Categories