||Chet Ramey and Brian Fox
Bash is the shell, or command language interpreter, for the GNU operating system. The name is an acronym for the ‘Bourne-Again SHell’, a pun on Stephen Bourne, the author of the direct ancestor of the current Unix shell /bin/sh, which appeared in the Seventh Edition Bell Labs Research version of Unix.
Bash is largely compatible with sh and incorporates useful features from the Korn shell ksh and the C shell csh. It is intended to be a conformant implementation of the IEEE POSIX Shell and Tools specification (IEEE Working Group 1003.2). It offers functional improvements over sh for both interactive and programming use.
While the GNU operating system provides other shells, including a version of csh, Bash is the default shell. Like other GNU software, Bash is quite portable. It currently runs on nearly every version of Unix and a few other operating systems – independently-supported ports exist for MS-DOS, OS/2, Windows 95/98, and Windows NT.
The primary reason for this document is that a lot of readers feel the existing HOWTO to be too short and incomplete, while the Bash Scripting guide is too much of a reference work. There is nothing in between these two extremes. It was also written on the general principal that not enough free basic courses are available, though they should be.
This is a practical guide which, while not always being too serious, tries to give real-life instead of theoretical examples. It was partly written because the author doesn’t get excited with stripped down and over-simplified examples written by people who know what they are talking about, showing some really cool Bash feature so much out of its context that you cannot ever use it in practical circumstances. You can read that sort of stuff after finishing this book, which contains exercises and examples that will help you survive in the real world.
From the author’s experience as a UNIX/Linux user, system administrator and trainer, he knows that people can have years of daily interaction with their systems, without having the slightest knowledge of task automation. Thus they often think that UNIX is not user friendly, and even worse, they get the impression that it is slow and old-fashioned. This problem is another one that can be remedied by this guide.
- Author: Mendel Cooper
- Format: online HTML
- Price: free
This tutorial assumes no previous knowledge of scripting or programming, but progresses rapidly toward an intermediate/advanced level of instruction . . . all the while sneaking in little nuggets of UNIX® wisdom and lore. It serves as a textbook, a manual for self-study, and a reference and source of knowledge on shell scripting techniques. The exercises and heavily-commented examples invite active reader participation, under the premise that the only way to really learn scripting is to write scripts.
This book is suitable for classroom use as a general introduction to programming concepts.
- Shell Programming!
- Starting Off With a Sha-Bang
- Special Characters
- Introduction to Variables and Parameters
- Exit and Exit Status
- Operations and Related Topics
- Another Look at Variables
- Manipulating Variables
- Loops and Branches
- Command Substitution
- Arithmetic Expansion
- Recess Time
- Internal Commands and Builtins
- External Filters, Programs and Commands
- System and Administrative Commands
- Regular Expressions
- Here Documents
- I/O Redirection
- Restricted Shells
- Process Substitution
- List Constructs
- Indirect References
- /dev and /proc
- Of Zeros and Nulls
- Scripting With Style
- Bash, versions 2, 3, and 4