https://tech.iprock.com/archives/28335
The Shell Scripting Guide: From Basics to Advanced Concepts