Bash is the default shell that ships on Mac OS X. A shell is basically an interpreter that offers the user the possibility of direct interaction, in addition to being able to run scripts. If you open the Terminal application, you are presented with a command-line prompt. This prompt is generated by the Bash Shell, and any command you enter is executed by the Bash Shell.
Bash is descended from the original Unix shell: Bourne Shell. The Bourne Shell is a subset of Bash, so you can do everything in Bash that you can do in the Bourne Shell. In fact, on Mac OS X, whenever you request a Bourne Shell, you get Bash.
It cannot be stressed enough how important shell programming, and Bash in particular, is to Mac OS X. Even if you never see a command-line prompt, or run a shell script yourself, you are indirectly making use of Bash every time you start your computer. For example, the configuration process that Mac OS X follows when it is booted is completely controlled by Bash Shell scripts. If you are not convinced, take a look in the /System/Library/StartupItems directory. Go into any one of the subdirectories there (for example, Apache), and use TextEdit to open the file with the same name as the directory (for example, for the Apache directory, open the Apache file). You are now looking at a Bash Shell script.
Unix shells are not the most glamorous of languages. They tend to be syntactically eccentric, which can throw up some challenges when you are learning ...