04. Positional Parameters and Special Characters $1, shift, $#, $@, $0, $$

Positional parameters are used to access the command-line arguments. These are the trailing words that come after the command line call.

$ myShellScript posParam1 posParam2 posParam3                  

The first argument is denoted by $1, the second by $2, and so on. Any two-digit values are to be wrapped around in braces such as ${10}.

The $0 variable is the name of the command itself. This can be useful when printing out error messages.

Unset positional parameters

If the user does not input any arguments, but you still call a positional parameter, then the shell takes it in as null.

Shifting parameters over

The shift command is used to shift the arguments over one. This removes the first argument, and advances the rest of the input arguments forward. We'll revisit this when using loops, where this command can be useful.

Other Positional Parameters & Special Characters

Here is a list of other important parameters.

$#
Number of arguments.
Print the number of arguments passed in.
Can be used with the shift variable within a loop.
$@
All arguments.
Access all arguments at once.
Useful when invoking a command within the script, and require the user-specified options in original command.
$$
Holds the process ID of the shell.
$?
Exit status of previous command.
$!
Process ID of last background command.

Aching back from coding all day?

Prism Glasses

Aching back from coding all day? Try Back Problems

Ever feel achy from sitting crunched up on your computer table? Try lying down with these optical glasses that allow you to work on your laptop while lying flat on your back. This is the perfect solution with those with limited mobility or those who wish to prevent neck cramps and back strains.

$ Check price
4.454.45Amazon 4 logo(128+ reviews)

More Back Problems resources

Take your Linux skills to the next level!

Linux for Beginners

Take your Linux skills to the next level! Try Linux & UNIX

Linux for Beginners doesn't make any assumptions about your background or knowledge of Linux. You need no prior knowledge to benefit from this book. You will be guided step by step using a logical and systematic approach. As new concepts, commands, or jargon are encountered they are explained in plain language, making it easy for anyone to understand.

$ Check price
24.9924.99Amazon 4.5 logo(101+ reviews)

More Linux & UNIX resources

Ad