Confuse how to use "$1" vs "$@"

 
Thread Tools Search this Thread
Homework and Emergencies Homework & Coursework Questions Confuse how to use "$1" vs "$@"
# 1  
Old 11-07-2014
Confuse how to use "$1" vs "$@"

I am confuse how to use the commands as follow:
Code:
grep "$1" /location of a file 
vs
grep "$@" /location of a file

What are differences between these two types of search?
Where can I read to get more knowledge about how to use $1 and $@?

Thank you,

Scopiop
# 2  
Old 11-07-2014
$1 represents the first positional parameter, and $@ represents all of them.

Here's an extract from the bash manual page on my system:
Code:
   Positional Parameters
       A positional parameter is a parameter denoted by one or more digits, other than the single digit 0.  Positional
       parameters  are  assigned  from  the  shell's arguments when it is invoked, and may be reassigned using the set
       builtin command.  Positional parameters may not be assigned to  with  assignment  statements.   The  positional
       parameters are temporarily replaced when a shell function is executed (see FUNCTIONS below).

       When  a  positional parameter consisting of more than a single digit is expanded, it must be enclosed in braces
       (see EXPANSION below).

   Special Parameters
       The shell treats several parameters specially.  These parameters may only be referenced; assignment to them  is
       not allowed.
       *      Expands  to  the  positional  parameters,  starting  from  one.  When the expansion occurs within double
              quotes, it expands to a single 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" ...  If the
              double-quoted  expansion  occurs  within a word, the expansion of the first parameter is joined with the
              beginning part of the original word, and the expansion of the last parameter is  joined  with  the  last
              part  of  the  original  word.   When  there are no positional parameters, "$@" and $@ expand to nothing
              (i.e., they are removed).

# 3  
Old 11-09-2014
Moderator's Comments:
Mod Comment As this is the homework section where special rules apply I close this thread.

Please keep in mind that the template you are offered when opening a thread here is there for a reason.


bakunin
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies

2. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

3. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

4. Solaris

The slices "usr", "opt", "tmp" disappeared!!! Help please.

The system don't boot. on the screen appears following: press enter to maintenance (or type CTRL-D to continue)...I checked with format command. ... the slices "0-root","1-swap","2-backup" exist. ...the slises "3-var","6-usr" -unassigned. :( (16 Replies)
Discussion started by: wolfgang
16 Replies

5. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

logs: "/home/abc/public_html/index.php" "/home/abc/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" how to use "cut" or "awk" or "sed" to get the following result: abc abc xyz xyz xyz (8 Replies)
Discussion started by: timmywong
8 Replies

6. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

7. Shell Programming and Scripting

ps -ef | grep "string1" "string2" " "string3"

Hi all, can any one suggest me the script to grep multiple strings from ps -ef pls correct the below script . its not working/ i want to print OK if all the below process are running in my solaris system. else i want to print NOT OK. bash-3.00$ ps -ef | grep blu lscpusr 48 42 ... (11 Replies)
Discussion started by: steve2216
11 Replies

8. Shell Programming and Scripting

cat $como_file | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g'

hi All, cat file_name | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g' Can this be done by using sed or awk alone (4 Replies)
Discussion started by: harshakusam
4 Replies

9. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies
Login or Register to Ask a Question