Shell Scripting - Arguments / Positional Parameters

In this series of Shell Scripting, today we discuss about command line arguments also know as positional parameters.

To handle options on the command line, we use a facility in the shell called positional parameters. Positional parameters are a series of special variables ($0 through $9) that contain the contents of the command line.

For Example:

[swapnil@googlinux.com]$ myprog.sh Swapnil Jain Indore

If myprog.sh is a shell script, we could read each item on the command line because the positional parameters contain the following:

  • $0 would contain "myprog.sh"
  • $1 would contain "Swapnil"
  • $2 would contain "Jain"
  • $3 would contain "Indore"

Here is a simple script you would like to try:

#!/bin/bash

echo "Program Name is $0"  
echo "First Name is $1"  
echo "Last Name is $2"  
echo "City is $3"  

Output:

[swapnil@googlinux.com]$ ./myprog.sh Swapnil Jain Indore
Program Name is ./myprog.sh  
First Name is Swapnil  
Last Name is Jain  
City is Indore  
Improving your Script

You can further improve this script by using some help and error handling

#!/bin/bash

if [ $# -lt 3 ];then  
   echo "ERROR: minimum 3 paramerts required"
   echo "Example: myprog.sh fname lname city"
else  
   echo "Program Name is $0"
   echo "First Name is $1"
   echo "Last Name is $2"
   echo "City is $3"
fi  
  • $# - contains the total number of parameters

You can play a lot with shell script, create simple programs to automate task. Stay tuned for more. Thats it for positional parameters.


Like it? Click here to Tweet your feedback

Swapnil Jain

RHCA Level X, RHCI ♦ Solution Architect ♦ DevOps Trainer & Consultant