Stop and think about it. You may think that bash is to sh what C++ is to C or even think that bash *is* sh. No! Bash just so happened to survive abortion because it's GNU (and took off with GNU/Linux). When shell scripting, focus on sh. sh scripts run on sh, bash, zsh, pdksh, ksh... bash scripts run on bash (and maybe ksh). If you don't care about portability and want sh++, you might as well use the most powerful sh variant: ksh. I honestly believe that bash holds people back.