linux shell or bash params
# 2.1. Positional Parameters
#-------------------------
# nano userReg-positional-parameter.sh and add the ff:
echo "Username: $1";
echo "Age: $2";
echo "Full Name: $3";
# Now let’s run this script with the three input parameters:
sh userReg-positional-parameter.sh john 25 'John Smith'
# The output will be:
# Username : john
# Age: 25
# Full Name: John Smith
# 2.2. Flags args
#-------------------------
# nano userReg-flags.sh and add the ff:
while getopts u:a:f: flag
do
case "${flag}" in
u) username=${OPTARG};;
a) age=${OPTARG};;
f) fullname=${OPTARG};;
esac
done
echo "Username: $username";
echo "Age: $age";
echo "Full Name: $fullname";
# Let’s run this script with the same input as before, only this time, we’ll add flags to the input:
sh userReg-flags.sh -f 'John Smith' -a 25 -u john
# The output is the same as before, though we have shifted the positions of the username and full name arguments:
# Username : john
# Age: 25
# Full Name: John Smith
# 2.3. Loop Construct - param > array
# nano users-loop.sh and add the ff:
Let’s take an example of the script users-loop.sh, which prints all the usernames that have been passed as input:
i=1;
for user in "$@"
do
echo "Username - $i: $user";
i=$((i + 1));
done
# Now let’s run the script:
sh users-loop.sh john matt bill 'joe wicks' carol
# And we’ll see our output:
# Username - 1: john
# Username - 2: matt
# Username - 3: bill
# Username - 4: joe wicks
# Username - 5: carol
# 2.4. Shift Operator - skip Nth
# nb: Shift operator causes indexing to start from the argument at the shifted position.
# nano users-shift-operator.sh and add the ff:
i=1;
j=$#;
while [ $i -le $j ]
do
echo "Username - $i: $1";
i=$((i + 1));
shift 1;
done
# Let’s run the script with the same input as above:
sh users-shift-operator.sh john matt bill 'joe wicks' carol
# The output will be the same as before:
# Username - 1: john
# Username - 2: matt
# Username - 3: bill
# Username - 4: joe wicks
# Username - 5: carol
# In this example, we’re shifting the positional parameter in each iteration by one until we reach the end of the input. Therefore, $1 refers to the next element in the input each time.