split_args () { POSITIONAL_ARGS="" NAMED_ARGS="" OPTION_ARGS="" while [ $# -gt 0 ] ; do if [[ "$1" =~ ^- ]]; then if ! [[ "$2" =~ ^- ]] && [ -n "$2" ] ; then NAMED_ARGS="$NAMED_ARGS $1 $2" shift else OPTION_ARGS="$OPTION_ARGS $1" fi else POSITIONAL_ARGS="$POSITIONAL_ARGS $1" fi shift done }