Title: UNIX Shell Patterns (9 pages) Authors: Jim Coplien, cope@bell-labs.com ILL650 1G341 1000 East Warrenville Road Naperville, IL 60566 Alan Robertson, alan.l.robertson@lucent.com COF100 31F-018 11900 N. Pecos St Westminster CO 80234-2703 Gregg Wonderly, gregg.wonderly@lucent.com ILI800 1V421 1200 E. Warrenville Road, P. O. Box 3045 Naperville IL 60566-7045 All are affiliated with Lucent Technologies, Bell Labs Innovations Abstract: Shell has emerged as a family of programming languages for the UNIX (R) Operating System in the same sense that JCL emerged as a programming language for mainframe job control in the 1960s. It is a family of languages because we find variant syntaxes and capabilities in the Bourne shell, the Korn shell, the C shell, and others. Most of the patterns described here apply equally well to all these variants. These patterns do not form a full pattern language nor are they a comprehensive collection of patterns for the "architecture" of a Shell program. They cover frequent Shell programming problems that often are resolved only with expert insight.