It really depends on the task.
I love automating all things that talk with HTTP with Python.
Doing this in bash with curl is possible but ugly.
When interacting with other local programs, I like bash.
I would like to add another tool, similar in spirit to google's Fire.
The is a much simpler library (easier to use, and smaller code base).
mach.py (do in German) allows you to write:
from mach import mach1
default = 'greet'
def greet(self, name: str=""):
if not name:
name = input('Your name: ')
print("Hello %s" % name)
if __name__ == '__main__':
Check http://mach.readthedocs.io/en/latest/ for more extensive examples.