---
name: "alt_getopt"
section: "1"
platform: "linux"
package: "runawk"
version: "1.6.1-1+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/alt_getopt"
---

# alt\_getopt(1)

parse command options

## NAME

alt\_getopt - parse command options

## SYNOPSIS

```
 cmds=`alt_getopt opt1 action1 [opt2 action2...] -- "$@"`
 eval "$cmds"
```

## DESCRIPTION

**alt\_getopt** is a command options parser. It conforms to POSIX and supports long options, that is works the same way as [**getopt\_long**(3)](/getopt_long/3.md) found in \*BSD and GNU libc.

## EXAMPLES

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.

```
 #!/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"
 ...
```

Another way to handle options using alt\_getopt.sh

```
  #!/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

\<http://sourceforge.net/projects/runawk/\>

## SEE ALSO getopt(3) getopt\_long(3)
