Navigation: Homepage | xmlgawk | Buchkritik | Sitemap

Titel

Learning the Korn Shell, 2nd Edition

Wertung

sehr empfehlenswert

So ziemlich das einzige, aktuelle Buch zur Korn Shell. Didaktisch besser gemacht als TheNewKornshell.

Hauptthema

Die Korn Shell 93 (bis und mit ksh93m) wird anhand vieler Beispiele erklärt. Das Buch geht von praktischen Fragestellungen aus und zeigt mögliche Lösungswege mit der ksh.

Kapitelstruktur

 Preface
 Chapter 1. Korn Shell Basics
  What Is a Shell?
  Scope of This Book
  History of Unix Shells
  Getting the 1993 Korn Shell
  Interactive Shell Use
  Files
  Input and Output
  Background Jobs
  Special Characters and Quoting
 Chapter 2. Command-Line Editing
  Enabling Command-Line Editing
  The History File
  Emacs Editing Mode
  Vi Editing Mode
  The hist Command
  Finger Habits
 Chapter 3. Customizing Your Environment
  The .profile File
  Aliases
  Options
  Shell Variables
  Customization and Subprocesses
  Customization Hints
 Chapter 4. Basic Shell Programming
  Shell Scripts and Functions
  Shell Variables
  Compound Variables
  Indirect Variable References (namerefs)
  String Operators
  Command Substitution
  Advanced Examples: pushd and popd
 Chapter 5. Flow Control
  if/else
  for
  case
  select
  while and until
 Chapter 6. Command-Line Options and Typed Variables
  Command-Line Options
  Numeric Variables and Arithmetic
  Arithmetic for
  Arrays
  typeset
 Chapter 7. Input/Output and Command-Line Processing
  I/O Redirectors
  String I/O
  Command-Line Processing
 Chapter 8. Process Handling
  Process IDs and Job Numbers
  Job Control
  Signals
  trap
  Coroutines
  Shell Subprocesses and Subshells
 Chapter 9. Debugging Shell Programs
  Basic Debugging Aids
  A Korn Shell Debugger
 Chapter 10. Korn Shell Administration
  Installing the Korn Shell as the Standard Shell
  Environment Customization
  Customizing the Editing Modes
  System Security Features
 Appendix A. Related Shells
 Appendix B. Reference Information
 Appendix C. Building ksh from Source Code
 Appendix D. AT&T ast Source Code License Agreement
 Index

Was ist die Botschaft? Motivation und Begründung

Die neuen und vor allem schönen Features der Korn Shell 93 sollen anhand praktischer Beispiel verdeutlicht werden. Erlauben sie es doch schnellere, kleinere und sichere Unix Shell Scripte zu erstellen. Die ksh macht das Nutzen weiterer Scriptengines wie 'awk' oder 'perl' für viele Anwendung überflüssig.

Durch die Verbreitung der ksh mit CDE Mitte der 90er Jahre und die Tatsache, dass viele Unix Vendors (Ausnahme Sun) inzwischen per default eine ksh93 ausliefern, macht die Shell interessant.

Meine Meinung

Das Buch ist definitiv besser für Einsteiger in ksh geeignet als TheNewKornshell, hat aber ebenfalls Schwächen. So sind die Beispiele wenig konsistent in ihrer Verwendung von Features, dabei hat mich am meisten gestört, dass 'let EXPR' anstelle der netteren '(( EXPR ))' Syntax verwendet wird. Schön hingegen sind die Erklärungen zu SIGDEBUG und den neuen Möglichkeiten von 'getopts'.

Leider finden sich auch die ganz neuen Themen, wie 'alarm' oder binäre Variablen nicht im Buch. Auch die Implementatio von REGEXP könnte mehr gewürdigt werden. Da wird es mit ksh93s einen neuen Operator geben, DGK schreibt:

 Yes, and with ksh93s, you can do
   [[ str =~ re_pat ]]
 which is equivalent to
   [[ str ==  ~(E)re_pat ]]

Die Referenzpappkarte ist ebenfalls empfehlenswert, da man die 'SSC Korn Shell Reference' so gut wie nicht mehr bekommt.

Überraschenderweise kann man auch ganz ordentlich interaktive Schellscripte mit der ksh93 realisieren, also inkl. Lineeditinig und Historie. Auf der Seite InteractiveCalculator zeige ich, wie man sehr einfach einen Desktoptaschenrechner realisieren kann.

Autor(en)

Bill Rosenblatt & Arnold Robbins

Erscheinungsjahr, Verlag, ISBN, Seitenzahl

2002, O'Reilly, 0-596-00195-9, 412 Seiten

URLs

Amazon: http://www.amazon.de/Learning-Korn-Shell-Unix-Programming/dp/0596001959

Verlag: http://www.oreilly.com/catalog/korn2/

Schlagworte

Shell, Korn Shell, Unix, Scriptprogramming

Datum

04-Nov-2006

last modified: $Date: 2006/12/03 11:11:26 $