2.4 KiB
getopts(1) -- Parse CLI options
SYNOPSIS
getopts
[options ...]
getopts
[options ...] |
while
read -l key value; ...; end
DESCRIPTION
getopts is a tool to help parsing command-line arguments. It is designed to process command line arguments that follow the POSIX Utility Syntax Guidelines. If no arguments are given it returns 1
.
USAGE
In the following example:
getopts -ab1 --foo=bar baz
And its output:
a
b 1
foo bar
_ baz
The items on the left represent the option flags or keys associated with the CLI. The items on the right are the option values. The underscore _
character is the default key for arguments without a key.
Use read
(1) to process the generated stream and switch
(1) to match patterns:
getopts -ab1 --foo=bar baz | while read -l key option
switch $key
case _
case a
case b
case foo
end
end
OPTIONS
None.
EXAMPLES
The following is a mock of fish
(1) CLI missing the implementation:
function fish
set -l mode
set -l flags
set -l commands
set -l debug_level
getopts $argv | while read -l key value
switch $key
case c command
set commands $commands $value
case d debug-level
set debug_level $value
case i interactive
set mode $value
case l login
set mode $value
case n no-execute
set mode $value
case p profile
set flags $flags $value
case h help
printf "usage: $_ [OPTIONS] [-c command] [FILE [ARGUMENTS...]]\n"
return
case \*
printf "$_: '%s' is not a valid option.\n" $key
return 1
end
end
# Implementation
end
BUGS
-
getopts does not read the standard input. Use getopts to collect options and the standard input to process a stream of data relevant to your program.
-
A double dash,
--
, marks the end of options. Arguments after this sequence are placed in the default underscore key,_
. -
The getopts described in this document is not equivalent to the getopts builtin found in other shells. This tool is only available for
fish
(1).
AUTHORS
Jorge Bucaran j@bucaran.me.
SEE ALSO
POSIX Utility Syntax Guidelines [goo.gl/yrgQn9]