I (Fare Rideau) have been moving out of writing shell scripts and instead writing scripts in Common Lisp. This is the collection of functions that I grow to support scripting in CL as a substitute to writing shell scripts, perl scripts, Makefile's, python scripts, etc. See my article Common Lisp as a Scripting Language, 2015 edition. See fare-scripts for examples of using cl-scripting; see also the tools/ directory in the asdf source repository.
See the git repository at: https://github.com/fare/cl-scripting
The collection is made of mostly independent files and relies on asdf 3's package-inferred-system support so that, e.g. commands.lisp can be loaded with (asdf:load-system :cl-scripting/commands). cl-scripting relies on uiop and inferior-shell for system access including spawning subprocesses. Various utilities may have their own additional dependencies.