Whether or not the shell is good depends (like everything) on what you are trying to do with it.
For an interactive console, I find bash (with the completion package and a custom prompt) better than anything I have ever used (and I keep trying to find a replacement).
For programming, sh is great at matching and moving files en masse depending on a few parameters, or wrapping cron jobs, and the like. For this it is downright delicious, but for things outside its domain, it rather sucks just like any programming language.
For an interactive console, I find bash (with the completion package and a custom prompt) better than anything I have ever used (and I keep trying to find a replacement).
For programming, sh is great at matching and moving files en masse depending on a few parameters, or wrapping cron jobs, and the like. For this it is downright delicious, but for things outside its domain, it rather sucks just like any programming language.