As a Pythonista I love the expressiveness and simplicity of the Python language. So, when some of my shell scripts are getting more and more complex I have the feeling that using Python would be more precise.
Python is a mighty friend, even at the command line prompt. It also
comes with some powerful friends which are helping you to write
awesome shell scripts. Starting with this article I will introduce
you to some of them, today there is docopt.
docopt - Command-line interface description language
Using docopt makes writing shell scripts a breeze as you have no
longer to deal with argparse. docopt parses the POSIX compliant
usage patterns of your script's docstring and offers you an
understandable interface for accessing its arguments.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | """ An awesome pythonic script. Usage: script --opt <arg> script --h | --help script --version Options: -h --help Show this help --version Show version """ from docopt import docopt print(docopt(__doc__, version='1.0.0')) |
Also a great deal is the fact that it encourages the author to write a documentation, even if it consists of only a handful of lines to make docopt work.
docopt is not part of the standard lib unfortunately which might stop you from using it when writing highly portable scripts.