Shell script is not showing last value in getopts
using while
command. See below command and code and output
command: nohup ksh newtome.ksh -m 100 -l LSD -t 10202020 -p ABC,CDE > log.txt &
masterLog="/testing/log/jlog123.txt"
if [ $# -lt 8 ]; then
echo "Usage: $0 -m ab -l cd -t ef -p gh"
echo "Usage: $0 -m ab -l cd -t ef -p gh" >> $masterLog
exit 1
fi
while getopts m:l:t:p option
do
case ${option} in
m) if [[ ${OPTARG} = -* ]]; then
echo "Invalid parameter \"${OPTARG}\" provided for argurment \"-${option}\""
echo "Invalid parameter \"${OPTARG}\" provided for argurment \"-${option}\"" > $masterLog
exit 1;
fi
ab=$OPTARG;;
l) if [[ ${OPTARG} = -* ]]; then
echo "Invalid parameter \"${OPTARG}\" provided for argurment \"-${option}\""
echo "Invalid parameter \"${OPTARG}\" provided for argurment \"-${option}\"" > $masterLog
exit 1;
fi
cd=$OPTARG;;
t) if [[ ${OPTARG} = -* ]]; then
echo "Invalid parameter \"${OPTARG}\" provided for argurment \"-${option}\""
echo "Invalid parameter \"${OPTARG}\" provided for argurment \"-${option}\"" > $masterLog
exit 1;
fi
ef=$OPTARG;;
p) if [[ ${OPTARG} = -* ]]; then
echo "Invalid parameter \"${OPTARG}\" provided for argurment \"-${option}\""
echo "Invalid parameter \"${OPTARG}\" provided for argurment \"-${option}\"" > $masterLog
exit 1;
fi
gh=$OPTARG;;
\?) print "Usage: $0 -p password -i ds" > $masterLog
print >&2 "echo "Usage: $0 -m ab -l cd -t ef -p gh""
exit 1;;
esac
done
OUTPUT:
+ getopts m:l:t:p option
+ ab=100
+ getopts m:l:t:p option
+ cd=LSD
+ getopts m:l:t:p option
+ ef=10202020
+ getopts m:l:t:p option
+ gh=
+ getopts m:l:t:p option