Shell scripts allow users to execute several programs with complex command line arguments with a single command. They are excellent for automating simple tasks.
Most shell scripts are written for the Bourne shell, since it (or a compatible variant) is available on all Unix systems. More complicated scripts are sometimes written in Perl (and therefore, by the above definition are not actually shell scripts); the exceptions are core system maintenance scripts, which cannot rely on the presence of Perl.