Skip to content

Instantly share code, notes, and snippets.

@jamesdube
Created December 9, 2020 16:22
Show Gist options
  • Save jamesdube/bbdb9f4a61924c8384d3526c368121b0 to your computer and use it in GitHub Desktop.
Save jamesdube/bbdb9f4a61924c8384d3526c368121b0 to your computer and use it in GitHub Desktop.
Bash Args
#!/bin/bash
PARAMS=""
while (( "$#" )); do
case "$1" in
-a|--my-boolean-flag)
MY_FLAG=0
shift
;;
-b|--my-flag-with-argument)
if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
MY_FLAG_ARG=$2
shift 2
else
echo "Error: Argument for $1 is missing" >&2
exit 1
fi
;;
-*|--*=) # unsupported flags
echo "Error: Unsupported flag $1" >&2
exit 1
;;
*) # preserve positional arguments
PARAMS="$PARAMS $1"
shift
;;
esac
done
# set positional arguments in their proper place
eval set -- "$PARAMS"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment