## 0.5. Chapter Summary

If you want to investigate specific topics rather than read the entire book through, here is a chapter-by-chapter summary:

Chapter 1
  Introduces the Korn shell and tells you how to install it as your login shell. It then introduces the basics of interactive shell use, including overviews of the Unix file and directory scheme, standard I/O, and background jobs.
Chapter 2
  Discusses the shell's command history mechanism, including the emacs and vi editing modes and the hist history command.
Chapter 3
  Covers ways to customize your shell environment without programming, by using the .profile and environment files. Aliases, options, and shell variables are the customization techniques discussed.
Chapter 4
  Introduces shell programming. This chapter explains the basics of shell scripts and functions, and discusses several important "nuts-and-bolts" programming features: string manipulation operators, regular expressions, command-line arguments (positional parameters), and command substitution.
Chapter 5
  Continues the discussion of shell programming by describing command exit status, conditional expressions, and the shell's flow-control structures: `if`, `for`, `case`, `select`, `while`, and `until`.
Chapter 6
  Goes into depth about positional parameters and command-line option processing, then discusses special types and properties of variables, such as integer and floating-point arithmetic, the arithmetic version of the `for` loop, indexed and associative arrays, and the typeset command.
Chapter 7
  Gives a detailed description of Korn shell I/O, filling in the information omitted in Chapter 1. All of the shell's I/O redirectors are covered, along with the shell's ability to make TCP/IP socket connections and the line-at-a-time I/O commands read, print, and printf. The chapter then discusses the shell's command-line processing mechanism and the eval command.
Chapter 8
  Covers process-related issues in detail. It starts with a discussion of job control and then gets into various low-level information about processes, including process IDs, signals, and traps. The chapter then moves out to a higher level of abstraction to discuss coroutines, two-way pipes, and subshells.
Chapter 9
  Discusses various debugging techniques, starting with simple ones like trace and verbose modes and "fake signal" traps. Next, this chapter describes discipline functions. Finally, it presents kshdb, a Korn shell debugging tool that you can use to debug your own code.
Chapter 10
  Gives information for system administrators, including techniques for implementing system-wide shell customization, customizing the built-in editors, and features related to system security.
Appendix A
  Compares the 1993 Korn shell to several similar shells, including the standard SVR4 Bourne shell, the 1988 Korn shell, the IEEE 1003.2 POSIX shell standard, the CDE Desk Top Korn shell (dtksh), tksh (which blends Tcl/Tk with ksh), the public domain Korn shell (pdksh), the Free Software Foundation's bash, the Z shell (zsh), and a number of Bourne-style shells (really Unix-emulation environments) for Microsoft Windows.
Appendix B
  Contains lists of shell invocation options, built-in commands, predefined aliases, built-in variables, conditional test operators, set command options, typeset command options, and emacs and vi editing mode commands. This appendix also covers the full details for using the getopts built-in command.
Appendix C
  Describes how to download the source for ksh93 and build a working executable. This appendix also covers downloading prebuilt executables for a number of different systems.
Appendix D
  Presents the licensing terms for the ksh93 source code.

Copyright © 2003 O'Reilly & Associates. All rights reserved.