#!/bin/bash #getopts checking for argv and define it into variables #options that needs to receive parameter have to enter : after the option EG: f:u:d: #In This Example h does not accept parameter. it execute the case only while getopts u:d:p:f:h option do case "${option}" in u) USER=${OPTARG};; d) DATE=${OPTARG};; p) PRODUCT=${OPTARG};; f) FORMAT=$OPTARG;; h) echo "FORMAT : ./bash_accept_argv.sh -u {username} -d {date} -p {product} -f {file_type} EG: ./bash_accept_argv.sh -u 'bot1 bot2' -d '2018-01-05' -p MOMOKO -f pdf " exit 1;; ?) echo "FORMAT : ./bash_accept_argv.sh -u {username} -d {date} -p {product} -f {file_type} EG: ./bash_accept_argv.sh -u 'bot1 bot2' -d '2018-01-05' -p MOMOKO -f pdf " exit 1;; esac done #Prevent Empty option passed into the script #[[ -z ${USER} ]] - Check length (More than one word) #[ -z ${FORMAT}] - Check Length (one word) if [[ -z ${USER} ]] || [[ -z ${DATE} ]] || [ -z ${PRODUCT} ] || [ -z ${FORMAT} ] then echo "FORMAT : ./bash_accept_argv.sh -u {username} -d {date} -p {product} -f {file_type} EG: ./bash_accept_argv.sh -u 'bot1 bot2' -d '2018-01-05' -p MOMOKO -f pdf " exit 1 fi #How to extract more than one data pass into the option for subuser in $USER;do echo $subuser done; echo ${DATE} echo ${PRODUCT} echo ${FORMAT}
ref link : Click Here