# Bourne Shell Scripting

Hi there! Welcome to this Wikibook on the wonderful world of Bourne Shell Scripting!
This book will cover the practical aspects of using and interacting with the Bourne Shell, the root of all shells in use in the Unix world. That includes interacting with the shell on a day-to-day basis for the purposes of operating the computer in normal tasks, as well as grouping together commands in files (scripts) which can be run over and over again. Since it's not practical to talk about the Bourne Shell in complete isolation, this will also mean some short jaunts into the wondrous world of Unix; not far, just enough to understand what is going on and be able to make full use of the shell's very wide capabilities.
There are also some things this book won't do for you. This book is not an in-depth tutorial on any kind of programming theory -- you won't learn the finer points of program construction and derivation or the mathematical backings of program development here. This book also won't teach you about Linux or any other type of Unix or Unix itself or any other operating system any more than is necessary to teach you how to use the shell. Nothing to be found here about Apache, joe, vi, or any other specific program. Nor will we cover firewalls and networking.
We will cover the Bourne Shell, beginning with the basic functionality and capabilities as they existed in the initial release, through to the added functionality specified by the international POSIX standard POSIX 1003.1 for this shell. We will have to give you some programming knowledge, but we hope that everyone will readily understand the few simple concepts we explain.
Having said that, the authors hope you will find this book a valuable resource for learning to use the shell and for using the shell on a regular basis. And that you might even have some fun along the way.

## Chapters

* Comparing Shells The Bourne Shell versus other shells (or: why the Bourne Shell?)
* Running Commands How to execute commands in the Bourne Shell
* Environment The Bourne Shell environment (and how it relates to multiprocessing)
* Variable Expansion Embedding values of parameters
* Control flow Programming in Bourne Shell (getting actual work done)
* Files and streams The (standard) ins and (standard) outs of what to do with your pipe...
* Modularization Programming in blocks -- and having them interact
* Debugging and signal handling Shell settings and debugging
* Appendix A: Command Reference An overview of all the built-in commands of the Bourne Shell
* Appendix B: Environment reference An overview of all the standard environment variables of the Bourne Shell
* Appendix C: Quick Reference Quick examples to refresh your memory
* Appendix D: Cookbook

## Authors

* BenTels, started the book
* Kernigh, added Substitution and Loops chapters
* Quick reference was originally by Greg Goebel and was from http://www.vectorsite.net/tsshell.html (was public domain licensed) and was partly wikified by unforgettableid.
* Other and anonymous contributors

## External References

* IEEE Std 1003.1, 2013 Edition - The 2013 Edition of IEEE/POSIX standard 1003.1
* An Introduction to the Unix Shell - HTML format republication of Steve Bourne's original tutorial for the Bourne Shell.
* UNIX Shell Script Tutorials & Reference - Richard H. Reepe
* Beginner
** BASH Programming - Introduction HOWTO
** Linux Shell Scripting Tutorial - A Beginners handbook
* Advanced scripting guide
** Advanced Bash-Scripting Guide
* Print
** UNIX IN A NUTSHELL: A Desktop Quick Reference for System V & Solaris 2.0 (2nd edition) Daniel Gilly et al. August 1994 ISBN 1-56592-001-5