I want the ability to specify whether to use Normal Error Reporting
or Silent Error Reporting
provided with getopts
.
Then I would be able to call my bash function like this
mari -s -n VAL -z VAL
The -s
would set Silent Error Reporting (i.e. set opstring=":n:z:"
), otherwise Normal Error Reporting (opstring="n:z:"
) will be used.
Currently I am hardwiring opstring
inside the function.
mari()
{
impl=""
if [[ "$impl" == "SILENT" ]]; then
opstring=":n:z:" # Short options string
else
opstring="n:z:"
fi
while getopts "$opstring" opname; do
case ${opname} in
("n")
if [ -n "$OPTARG" ]; then
echo "The string is not empty"
else
echo "The string is empty"
fi
;;
("z")
if [ -z "$OPTARG" ]; then
echo "The string is empty"
else
echo "The string is not empty"
fi
;;
(?)
## Invalid Option Found, OPNAME set to '?'
echo "Invalid option: -$OPTARG" 1>&2
exit 1
;;
(:)
## Required option argument not found, OPNAME set to ':'
echo "Option -$OPTARG requires an argument" 1>&2
exit 1
;;
esac
done
}