Years ago I remember reading in Kernighan and Pike’s The Unix Programming Environment a quote about how the shell was very often their preferred programming language:
When you’re faced with writing a new program, there’s a natural tendency to start thinking immediately about how to write it in your favorite programming language. In our case, that language is most often the shell
It’s easy to see why. Programming in shell is quick and easy and you can use interactive programming techniques to build your application. It might seem like the shell is a blunt instrument but I’m often amazed at how large, robust applications can be built in shell. At the same time, it’s possible to perform low-level operations in shell.
Dylan Araps has curated a collection of pure Bash alternatives to several external programs. At the same, the collection demonstrates how to perform various low-lever computations such as removing duplicate array elements and much more. All this is collected in his Pure Bash Bible Github repository along with a handy, clickable table of contents.
If you write shell code or would like to, this is a valuable repository to bookmark or clone. You can also get a hardcopy from Leanpub if you prefer dead tree books.