bash provides a scripting language which allows you to combine the various Unix utilitie in a custom manor. The language provides for decission branching structures, loop structures, and functions. Because bash is an user intefadce to the Unix/Linux operating system, the test conditions these flow of control structures act on are usually the status of a command or file or the contents of a shell variable.