alt_getopt(1)
okay so we're diving into alt_getopt(1) today, bestie π the manual page for the command options parser that's giving main character energy π
β¨ NAME β¨
alt_getopt β parses command options π§
πΈ SYNOPSIS πΈ
cmds=`alt_getopt opt1 action1 [opt2 action2...] -- "$@"`
eval "$cmds"
π DESCRIPTION π
ngl alt_getopt is a command options parser and it is SO good π It conforms to POSIX π«Ά and supports long options, which means it works the exact same way as getopt_long(3), the one you'll find in *BSD and GNU libc. Iconic, honestly π
π¦ EXAMPLES π¦
okay this is the part I'm obsessed with π The following shell script accepts the options: -v (or --verbose), -h (or --help), long option --fake without short synonym, --len accepting argument, -o (or --output) accepting argument, short options -f and -F without long synonyms etc. If option is applied, appropriate shell command is executed. Slay π
#!/bin/sh
help () { echo 'help here'; }
process_args (){
alt_getopt \
'v|verbose' 'verbose=1' \
'h help' help \
'fake' fake_flag=1 \
'=len' len= \
'=o output' output= \
'=m msg' "msg=" \
'V version' "echo 'alt_getopt-0-1-0'" \
f 'flag=1' \
F 'flag=' \
=n number= \
-- "$@"
}
cmds=`process_args "$@"`
eval "$cmds"
echo "flag=$flag"
echo "msg=$msg"
...
And here's another way to handle options using alt_getopt.sh, bc why not π
#!/bin/sh
. alt_getopt.sh
help () {
cat 1>&2 <<EOF
demo_alt_getopt2.sh is a demo program for alt_getopt.sh
OPTIONS:
$help_msg
EOF
}
# the third argument in add_arg function envocation is optional
add_arg 'h help' 'help; exit 0' \
' -h|--help display this help'
add_arg 'v|version' "echo 'demo_alt_getopt2.sh 0.1.0'" \
' -v|--version display version'
add_arg '=o|output' "output=" \
' -o|--output output file'
process_args "$@"
shift "$shifts"
echo "output=$output"
π HOME π
the project lives over here π¦ <http://sourceforge.net/projects/runawk/>
π SEE ALSO π
getopt(3) and getopt_long(3), go check those out π
that's the whole tea, bestie π«Ά alt_getopt(1), dated 2023-01-02, and still giving ππ β¨
π¦ where this page comes from
- debian bookworm: runawk 1.6.1-1
- ubuntu noble: runawk 1.6.1-1
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms