Argument parsing in bash
#!/bin/bash
ARG3=NO
for i in "$@"
do
case $i in
-arg1=*|--argument1=*)
ARG1="${i#*=}"
shift # go to next arg=val
;;
-arg2=*|--argument2=*)
ARG2="${i#*=}"
shift # go to next arg=val
;;
--arg3)
ARG3=YES
shift # skip argument without value
;;
*)
# unknown option
;;
esac
done
if [ -z "$ARG1" ]; then
echo "ARG1 can not be empty"
exit 1
else
if ! [[ $ARG1 =~ ^-?[0-9]+$ ]]; then
echo "ARG1 must be a number"
exit 1
fi
fi
echo "ARG1 = ${ARG1}"
echo "ARG2 = ${ARG2}"
echo "ARG3 = ${ARG3}"
March 3rd, 2016 in
main entries