---
syntax: markdown
tags: [tldr, common]
source: https://github.com/tldr-pages/tldr.git
---
# getopts

> Parse shell options from arguments.
> This command does not support longform options and thus using `getopt` is recommended instead.
> More information: <https://www.gnu.org/software/bash/manual/bash.html#index-getopts>.

- Check if an option is set:

`getopts {{x}} {{opt}}; echo $opt`

- Set an option to require an argument and check said argument:

`getopts {{x}}: {{opt}}; echo $OPTARG`

- Check for multiple options:

`while getopts {{xyz}} {{opt}}; do case $opt in x) echo x is set;; y) echo y is set;; z) echo z is set;; esac; done`

- Set `getopts` to silent mode and handle option errors:

`while getopts :{{x:}} {{opt}}; do case $opt in x) ;; :) echo "Argument required";; ?) echo "Invalid argument" esac;; done`

- Reset `getopts`:

`OPTIND=1`
