arg.c | ||
LICENSE | ||
Makefile | ||
README.md |
arg - A simple command line argument parser
This is a simple tool with a simple job: figure out the value of a single
command line argument. Tools like getopt
and getopts
are much too
complicated. It's much nicer to be able to write shell scripts like this:
#!/bin/sh
dir=`arg --dir "$@" || arg -d "$@" || echo "$HOME/Downloads"`
if arg --verbose "$@" || arg -v "$@"; then
echo "Downloading to $dir"
fi
cd $path && curl -O example.com/file.zip
Usage
arg -f ...
, arg -flag ...
, or arg --flag ...
. If arg
finds the
given flag among the rest of the command line arguments, it will print
the flag's value (if any) and exit successfully, otherwise, it will
fail (exit status 1). The value may be of the form --flag=value
,
--flag value
, -f value
. Single-letter flags will match when grouped
with other single letter flags, but will not have a value, i.e.
arg -b -abc foo
will exit successfully without printing anything.
When using arg
in a shell script, it is best to use quotes around $@
,
as in arg --foo "$@"
, so arguments with spaces will parse properly,
like my_script.sh --flag "one two"
.