Introduction

Developing software typically involves spending a lot of time at the command line. Various tasks require the ability to input very detailed instructions to the computer, in ways that are difficult to impossible to accomplish without a text-based interface and a keyboard (and coffee).

In this article we’ll look at the basics of creating useful tools in Bash, the most common shell found within server-side architecture and DevOps.

While shell scripting is indeed scripting, an effort is made to apply as many concepts of production-grade software engineering to the example project as possible, to establish best practices that result in a high degree of success (and makes it easier to figure out what happened if something breaks).

A copy of the source code for this article is available here on GitHub.