# @describe All kinds of @arg # @cmd cmd() { _debug "$@" } # @cmd # @alias a cmd_alias() { _debug "$@" } # @cmd # @arg val cmd_arg() { _debug "$@" } # @cmd # @arg val* cmd_multi_arg() { _debug "$@" } # @cmd # @arg val+ cmd_required_multi_arg() { _debug "$@" } # @cmd # @arg val! cmd_required_arg() { _debug "$@" } # @cmd # @arg val=xyz cmd_arg_with_default() { _debug "$@" } # @cmd # @arg val=`_default_fn` cmd_arg_with_default_fn() { _debug "$@" } # @cmd # @arg val[x|y|z] cmd_arg_with_choices() { _debug "$@" } # @cmd # @arg val[=x|y|z] cmd_arg_with_choices_and_default() { _debug "$@" } # @cmd # @arg val*[x|y|z] cmd_multi_arg_with_choices() { _debug "$@" } # @cmd # @arg val+[x|y|z] cmd_required_multi_arg_with_choices() { _debug "$@" } # @cmd # @arg val[`_choice_fn`] cmd_arg_with_choice_fn() { _debug "$@" } # @cmd # @arg val[?`_choice_fn`] cmd_arg_with_choice_fn_and_skip_check() { _debug "$@" } # @cmd # @arg val![`_choice_fn`] cmd_required_arg_with_choice_fn() { _debug "$@" } # @cmd # @arg val*[`_choice_fn`] cmd_multi_arg_with_choice_fn() { _debug "$@" } # @cmd # @arg val+[`_choice_fn`] cmd_required_multi_arg_with_choice_fn() { _debug "$@" } # @cmd # @arg val*,[`_choice_fn`] cmd_multi_arg_with_choice_fn_and_comma_sep() { _debug "$@" } # @cmd # @arg vals~ cmd_terminaled() { _debug "$@" } # @cmd # @arg val cmd_arg_with_notation() { _debug "$@" } # @cmd # @arg val1* # @arg val2* cmd_two_multi_args() { _debug "$@" } # @cmd # @arg val1! # @arg val2+ cmd_one_required_second_required_multi() { _debug "$@" } # @cmd # @arg val1! # @arg val2! # @arg val3! cmd_three_required_args() { _debug "$@" } _debug() { ( set -o posix ; set ) | grep ^argc_ echo "$argc__fn" "$@" } _default_fn() { echo abc } _choice_fn() { echo abc echo def echo ghi } eval "$(argc --argc-eval "$0" "$@")"