Published on March 4, 2017 by ProgrammingKnowledge

Passing arguments to a shell script

Any shell script you run has access to (inherits) the environment variables accessible to its parent shell. In addition, any arguments you type after the script name on the shell command line are passed to the script as a series of variables.

The following parameters are recognized:

$*
Returns a single string (“$1, $2 … $n”) comprising all of the positional parameters separated by the internal field separator character (defined by the IFS environment variable).

$@
Returns a sequence of strings (“$1”, “$2”, … “$n”) wherein each positional parameter remains separate from the others.

$1, $2 … $n
Refers to a numbered argument to the script, where n is the position of the argument on the command line. In the Korn shell you can refer directly to arguments where n is greater than 9 using braces. For example, to refer to the 57th positional parameter, use the notation ${57}. In the other shells, to refer to parameters with numbers greater than 9, use the shift command; this shifts the parameter list to the left. $1 is lost, while $2 becomes $1, $3 becomes $2, and so on. The inaccessible tenth parameter becomes $9 and can then be referred to.

$0
Refers to the name of the script itself.

$#
Refers to the number of arguments specified on a command line.

Leave a Reply

2 Comments on "Shell Scripting Tutorial for Beginners 4 – Pass Arguments to a Bash-Script"

Notify of
avatar

Sirous Mani
Guest
Sirous Mani
19 days 21 hours ago

Make some apache videos later please too. Generically.

Jose Gonzalez
Guest
Jose Gonzalez
20 days 12 hours ago

Cual es la diferencia entre ftp y sambaSaludos desde centro América

wpDiscuz