We all love higher-level automation tools. But, despite everyone’s efforts, shell scripts are still a fact of life and will be for the foreseeable future. This talk is about how to avoid the common pitfalls of shell scripts. To prove the point, we’ll take some typical bash scripts and show how to use the open source rerun framework to instantly improve modularity, standardize option handling, automatic releases triggered by continuous integration, and make your scripts test-driven (yes, test-driven bash!). Then we’ll use open source Rundeck to add self-service interfaces (GUI, CLI, API), dispatching to remote nodes, fine-grain security controls, and standardized logging. Take you scripts from outcasts to heroes in minutes.