Shell script to pass multiple arguments with options
Shell script to pass multiple arguments with options
This tutorial will help you to pass multiple arguments in a more organized manner. I have used two arguments “t” and “d” here. The first argument “t” will accept task value and based on the task value you can perform the respective action for a particular date(“d”).
In a real world example, if you want to write a bash script which will accept database DML operation as an argument and based on the DML command type, perform some operation for a specific date.
example:
$ sh script.sh -t insert -d 2019-06-18
$ sh script.sh -t update -d 2019-06-18
$ sh script.sh -t select -d 2019-06-18
script.sh
#!/bin/bash if (($# == 0)); then echo "Please pass arguments -t <task1><task2>... -d <date>.." exit 2 fi while getopts ":t:d:" opt; do case $opt in t) echo "-t was triggered, Parameter: $OPTARG" >&2 TASKS=$OPTARG ;; d) echo "-d was triggered, Parameter: $OPTARG" >&2 RDATE=$OPTARG ;; \?) echo "Invalid option: -$OPTARG" >&2 exit 1 ;; :) echo "Option -$OPTARG requires an argument." >&2 exit 1 ;; esac done echo "Go thru selection" for TASK in $TASKS; do if [ "$TASKS" == "d1" ] then echo "Inside the d1" echo -n "Choose option p-partial, hit enter for all >" read DType echo "You have choosen $DType" fi echo "Task: $TASK" done ##Check Date date "+%Y-%m-%d" -d "$RDATE" > /dev/null 2>&1 if [ $? != 0 ] then echo Start date $start is NOT a valid YYYY-MM-DD date exit 1 fi
Uses:
$ sh script.sh -t d1 -d 2019-06-18
Few More Shell Script Reference
https://github.com/roopendra/devops/tree/master/bash_scripting
(Visited 1,664 times, 5 visits today)