Source: https://doc.lagout.org/programmation/Shell /Pro Bash Programming.pdf