The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting
Google UNIX.COM


Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts here.

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
whats the difference between zombie orpha and defunct processes pbsrinivas UNIX for Dummies Questions & Answers 3 04-03-2008 05:36 AM
Linux OR Unix Whats The Difference! jamesthemagicia UNIX for Dummies Questions & Answers 1 11-10-2005 01:58 PM
Whats Behind Your Name? google What's on Your Mind? 66 10-18-2005 04:40 PM
Whats the difference between... hype.it UNIX for Dummies Questions & Answers 1 08-30-2004 10:54 AM
Whats does this mean jyotipg Shell Programming and Scripting 1 04-06-2004 04:11 AM

Reply
 
Submit Tools LinkBack Thread Tools Search this Thread Display Modes
  #1  
Old 01-14-2008
Registered User
 

Join Date: Jul 2006
Posts: 141
whats the difference between $* and $@

Hi,

whats the difference between $* and $@ in command line arguments to a shell scripts
Reply With Quote
Forum Sponsor
  #2  
Old 01-14-2008
Registered User
 

Join Date: Dec 2007
Location: Philippines, Cebu City
Posts: 67
$* = all the arguments are double quoted. If a script receives 2 arguments, $* is equivalent to $1 $2

$@ All the arguments are individually double quoted,If a script receives 2 arguments, $@ is equivalent to $1 $2
Reply With Quote
  #3  
Old 01-14-2008
Registered User
 

Join Date: Jul 2006
Posts: 141
Quote:
Originally Posted by invinzin21 View Post
$* = all the arguments are double quoted. If a script receives 2 arguments, $* is equivalent to $1 $2

$@ All the arguments are individually double quoted,If a script receives 2 arguments, $@ is equivalent to $1 $2
in both cases
Quote:
If a script receives 2 arguments, $*/$@ is equivalent to $1 $2
cat scr


for i in $@
do
echo "@ $i"
done
for j in $*
do
echo "* $j"
done




./scr a b c "d e"
@ a
@ b
@ c
@ d
@ e
* a
* b
* c
* d
* e

can we see some diff through this kind of script ???
Reply With Quote
  #4  
Old 01-14-2008
vino's Avatar
Supporter (in vino veritas)
 

Join Date: Feb 2005
Location: Bangalore, India
Posts: 2,699
Quote:
Originally Posted by pbsrinivas View Post
Hi,

whats the difference between $* and $@ in command line arguments to a shell scripts
Look into man sh under the section 'Special Parameters'
Code:
       *      Expands  to the positional parameters, starting from one.  When
              the expansion occurs within double quotes, it expands to a sin-
              gle  word  with  the  value  of each parameter separated by the
              first character of the IFS special variable.  That is, "$*"  is
              equivalent  to  "$1c$2c...",  where c is the first character of
              the value of the IFS variable.  If IFS is unset, the parameters
              are  separated  by  spaces.  If IFS is null, the parameters are
              joined without intervening separators.
       @      Expands to the positional parameters, starting from one.   When
              the  expansion  occurs  within  double  quotes,  each parameter
              expands to a separate word.  That is,  "$@"  is  equivalent  to
              "$1"  "$2"  ...   When there are no positional parameters, "$@"
              and $@ expand to nothing (i.e., they are removed).
Reply With Quote
Google The UNIX and Linux Forums
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes




All times are GMT -7. The time now is 07:11 AM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
The UNIX and Linux Forums Content Copyright ©1993-2008. All Rights Reserved.Ad Management by RedTyger Visit The Complex Event Processing Blog

Content Relevant URLs by vBSEO 3.2.0