Bash is the default shell on most Linux distributions. It is well known for not only its many extentions to POSIX sh, but its many quirks and variations from minor and major releases alike.
In general, it is recommended to stick as close to the sh specification as possible to generate useful, reusable code. An attempt will be made to recognize code herein that violates the defined standards.