For writing actual scripts, I prefer ksh, which has several extensions useful for programming and fixes one of my pet annoyances.
bash is my preference for interactive sessions, but that is more a matter of personal preference than anything else. Just be sure it is a Bourne-type shell.