It sounds like you're asking difference between Unix and Linux.
In a nutshell, a shell
is command-line interpreter or working environment in Unix based operating system. It is nothing but collective name of class of various shells. It includes many different shell like bash, csh, tcsh, zsh, ksh and so on. However, for better understanding, once check here
or do little googling or follow some guides
On the other hand, bash
is just a type of shell. Check here