Command Line Arguments in Shell Script

Arguments are inputs that are necessary to process the flow. Instead of getting input from a shell program or assigning it to the program, the arguments are passed in the execution part.

Positional Parameters

Command-line arguments are passed in the positional way i.e. in the same way how they are given in the program execution.

let's see it with an example

#!/bin/bash
name=${1}
age=${2}

echo "Hello my name is ${name} and my age is ${age}"

now let's give execute permission to this program and execute it.

┌──(gaurav㉿learning-ocean)-[~/shellscript-youtube]
└─$ chmod +x commandlineargs.sh

┌──(gaurav㉿learning-ocean)-[~/shellscript-youtube]
└─$ ./commandlineargs.sh gaurav 30
my name is gaurav, and my age is 30

Suggestion : please use ${1} instead of $1.

#!/bin/bash
name=${1}
age=${2}
echo ${1}
echo ${2}
echo ${3}
echo ${4}
echo ${5}
echo ${6}
echo ${7}
echo ${8}
echo ${9}
echo ${11}
echo ${12}
echo ${13}
echo "my name is ${name}, and my age is ${age}"
echo $#
echo $@
echo $*

Special Variables:

${0} will represent the shell script name itself.

${#} or $# will show us the Total number of arguments and it is a good approach for loop concepts.

$* or ${*} In order to get all the arguments as double-quoted, we can follow this way

$@ or ${@} Values of the arguments that are passed in the program. This will be much helpful if we are not sure about the number of arguments that got passed.