For me this is is it, if you're stringing together a load of other command line tools then a large well structured shell script is perfectly fine.

A typical task in my day job is extracting metadata from and transcoding large AV archives, I always use a bash for this because I'm mainly stringing together tools like ffmpeg or sox, making directories, tempfiles, creating chesksum manifests, etc.

Also I typically do this on large CPU machines with many cores, I can parallelize operations in one line using xargs and a bash function. Doing stuff like this in python is actually a real pain in comparison.

> python

There's a library for Node called Zx (https://github.com/google/zx) that provides a more shell-liked interface for Node.

I've been working on something in Python, inspired by Zx and Xonsh (https://xon.sh/), with syntax like this:

  from pathlib import Path

  from pyshell import Pipeline


  args = ["123", "456"]
  f = Path("out.txt")
  with Pipeline() as p:
      p.exec("a") | p.exec("b", *args) | p.exec("c", "x", "y") >> f
Personally, the above would be hugely useful to me in reducing my temptation to write shell scripts, and significantly reducing the annoyance of doing these things in Python.

Is this something you'd use? It's slow going for me because it basically involves writing a compiler and I have approximately zero idea of what I'm doing. Knowing that other people would find it useful helps me stay motivated to keep working on it! Or if someone who theoretically is the primary audience doesn't find it useful, it might mean that I should spend my energy on other things.