Pro Bash Programming: Scripting the Linux Shell