A bash script that uses a loop to parse arguments handed over via the command line.
# Default values of arguments
SHOULD_INITIALIZE=0
CACHE_DIRECTORY="/etc/cache"
ROOT_DIRECTORY="/etc/projects"
OTHER_ARGUMENTS=()
# Loop through arguments and process them
while [ ${#@} != 0 ]; do
case $1 in
-i|--initialize)
SHOULD_INITIALIZE=1
shift # Remove --initialize from processing
;;
-c=*|--cache=*)
CACHE_DIRECTORY="${1#*=}"
shift # Remove --cache= from processing
;;
-c|--cache)
CACHE_DIRECTORY="$2"
shift
shift
;;
-r|--root)
ROOT_DIRECTORY="$2"
shift # Remove argument name from processing
shift # Remove argument value from processing
;;
*)
echo "Invalid argument ${1}. Exiting..."
exit 1;
;;
esac
done
echo "# Should initialize: $SHOULD_INITIALIZE"
echo "# Cache directory: $CACHE_DIRECTORY"
echo "# Root directory: $ROOT_DIRECTORY"