<para>The primary reason for writing this document is that a lot of readers feel the existing <ulinkurl="http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html">HOWTO</ulink> to be too short and incomplete, while the <ulinkurl="http://tldp.org/LDP/abs/html/">Bash Scripting</ulink> guide is too much of a reference work. There is nothing in between these two extremes. I also wrote this guide on the general principal that not enough free basic courses are available, though they should be.</para>
<para>This is a practical guide which, while not always being too serious, tries to give real-life instead of theoretical examples. I partly wrote it because I don'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.</para>
<para>From my experience as UNIX/Linux user, system administrator and trainer, I know 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 userfriendly, 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.</para>
<para>Everybody working on a UNIX or UNIX-like system who wants to make life easier on themselves, power users and sysadmins alike, can benefit from reading this book. Readers who already have a grasp of working the system using the command line will learn the ins and outs of shell scripting that ease execution of daily tasks. System administration relies a great deal on shell scripting; common tasks are often automated using simple scripts. This document is full of examples that will encourage you to write your own and that will inspire you to improve on existing scripts.</para>
<para>See <ulinkurl="http://tldp.org/LDP/intro-linux/html/">Introduction to Linux</ulink> (or your local <ulinkurl="http://www.tldp.org/mirrors.html">TLDP mirror</ulink>) if you haven't mastered one or more of these topics. Additional information can be found in your system documentation (man and info pages), or at <ulinkurl="http://tldp.org">the Linux Documentation Project</ulink>.</para>
<para>The most recent edition can be found at <ulinkurl="http://tille.xalasys.com/training/bash/"/>. You should find the same version at <ulinkurl="http://tldp.org/LDP/Bash-Beginners-Guide/html/index.html"/>.</para>
<revremark>Added tracer image 1x1 pixel http://tille.xalasys.com/images/blank-bash.png, added textobjects for all pictures, fixed wrong links in index, made signal list more clear.</revremark>
Thanks to all the friends who helped (or tried to) and to my husband; your encouraging words made this work possible. Thanks to all the people who submitted bug reports, examples and remarks - among many, many others:</para>
<itemizedlist>
<listitem><para>Hans Bol, one of the groupies</para></listitem>
<listitem><para>Mike Sim, remarks on style</para></listitem>
<listitem><para>Dan Richter, for array examples</para></listitem>
<listitem><para>Gerg Ferguson, for ideas on the title</para></listitem>
<listitem><para>Mendel Leo Cooper, for making room</para></listitem>
<listitem><para>#linux.be, for keeping my feet on the ground</para></listitem>
<para>Special thanks to Tabatha Marshall, who volunteered to do a complete review and spell and grammar check. We make a great team: she works when I sleep. And vice versa ;-)</para>
<para> Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being "New versions of this document", "Contributions", "Feedback" and "Copyright information", with no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in <xreflinkend="app_01"/> entitled "GNU Free Documentation License".</para>
<para>The author and publisher have made every effort in the preparation of this book to ensure the accuracy of the information. However, the information contained in this book is offered without warranty, either express or implied. Neither the author nor the publisher nor any dealer or distributor will be held liable for any damages caused or alleged to be caused either directly or indirectly by this book.</para>
<para>The logos, trademarks and symbols used in this book are the properties of
<para><command>bash</command>, available from <ulinkurl="http://www.gnu.org/directory/GNU/">http://www.gnu.org/directory/GNU/</ulink>. The Bash shell is available on nearly every Linux system, and can these days be found on a wide variety of UNIX systems.</para>
<para>Compiles easily if you need to make your own, tested on a wide variety of UNIX, Linux, MS Windows and other systems.</para>
<entry>Important term or concept: <quote>The Linux <emphasis>kernel</emphasis>
is the heart of the system.</quote></entry>
</row>
<row>
<entry><screen>\</screen></entry>
<entry>The backslash in a terminal view or command synopsis indicates an unfinished line. In other words, if you see a long command that is cut into multiple lines, \ means <quote>Don't press <keycap>Enter</keycap> yet!</quote></entry>
</row>
<row>
<entry>See <xreflinkend="chap_01"/></entry><entry>link to related subject
<para>This guide discusses concepts useful in the daily life of the serious Bash user. While a basic knowledge of the usage of the shell is required, we start with a discussion of the basic shell components and practices in the first three chapters.</para>
<para>Chapters four to six are discussions of basic tools that are commonly used in shell scripts.</para>
<para>Chapters eight to twelve discuss the most common constructs in shell scripts.</para>
<para>All chapters come with exercises that will test your preparedness for the
next chapter.</para>
<itemizedlist>
<listitem>
<para><xreflinkend="chap_01"/>: Bash basics: why Bash is so good, building blocks, first guidelines on developing good scripts.</para>
</listitem>
<listitem>
<para><xreflinkend="chap_02"/>: Script basics: writing and debugging.</para>