matejak / argbash

Bash argument parsing code generator
Other
1.39k stars 63 forks source link
argument-parsing code-generator shell-scripts

argbash

Build Status Documentation Status

argbash logo

Give Argbash a try and stop being terrorized by those pesky arguments! With Argbash, you will get:

Make your existing script powered by Argbash in a couple of minutes. Explore various Argbash flavours:

Flavour Target group
Argbash online Use it if you want to try Argbash without installing it and you have permanent access to the Internet.
Argbash CLI Install the package to have argbash ready locally all the time.
Argbash Docker Pretty much like Argbash CLI, but you don't have to install it, you just download the image.

What it is

Argbash is not a parsing library, but it is rather a code generator that generates a bash library tailor-made for your script. It lets you to describe arguments your script should take and then, you can generate the bash parsing code. It stays in your script by default, but you can have it generated to a separate file and let Argbash to include it in your script for you. In any case, you won't need Argbash to run the script.

Argbash is very simple to use and the generated code is relatively nice to read. Moreover, argument definitions stay embedded in the script, so when you need to update the parsing logic, you just re-run the argbash script on the already generated script.

So by writing few comments to your script and running the Argbash's bin/argbash over it, you will get a bash script with argument parsing. See the simple example source template and simple example script for the result. If you are not into long reading, let bin/argbash-init generate the template for you.

Following argument types are supported:

Following outputs are available:

The utility has been inspired by Python's argparse and the shflags project.

Read the docs (latest stable version) for more info

Requirements