I refer others to these posts constantly; I may as well put them here.
Shell Scripting Basics
- Why is using a shell loop to process text considered bad practice?
- Why does my shell script choke on whitespace or other special characters?
- Why is printf better than echo?
- Why is looping over find's output bad practice?
- Are there naming conventions for variables in shell scripts?
- What are the shell's control and redirection operators?
- Have backticks (i.e. `cmd`) in *sh shells been deprecated?
Also highly recommended: