Remember the different Linux manual sections.
man 1  ->  user commands
man 2  ->  Linux system calls
man 3  ->  C library functions (but not necessarily C Standard Library functions)
man 4  ->  special files
man 5  ->  file formats
man 8  ->  administration and privileged commands

Note: These are the current manual sections. Our textbook uses an
older numbering for manual sections. For example, the book considers
Section 4 to be file formats, but that is now Section 5.

You can get an introduction to section n with the command
$ man n intro


--------------------------------------------------------------------------
Chapter 9



--------------------------------------------------------------------------
Section 9.2

From the Chapter 8 folder, try running the "script file" psh4.script with the psh4.c shell.
> ./psh4 < psh4.script


--------------------------------------------------------------------------
Section 9.3

The shell in this section, smsh1, can parse (tokenize) a command line,
and you can exit the sell using CTRL-D.

The files for the shell are:
  smsh1.c
  splitline.c
  execute.c


--------------------------------------------------------------------------
Section 9.4

The shell in this section, smsh2, adds an if/else command to the "shell language".

The files for the shell are:
  smsh2.c
  splitline.c
  execute.c       execute.h
  controlflow.c   controlflow.h
  process.c       process.h


--------------------------------------------------------------------------
Section 9.5

The shell in this section, smsh3, adds shell variables to the "shell language".

The files for the shell are (NOTE: smsh3 uses smsh2.c!):
  smsh2.c
  splitline.c
  execute.c       execute.h
  controlflow.c   controlflow.h
  process2.c      process.h
  builtin.c
  varlib.c        varlib.h


--------------------------------------------------------------------------
Section 9.6

The shell in this section, smsh4, allows its shell variables to be "exported" to the environment.

The files for the shell are:
  smsh4.c
  splitline.c
  execute2.c      execute.h
  controlflow.c   controlflow.h
  process2.c      process.h
  builtin.c
  varlib.c        varlib.h

  This section also uses the demonstration program changeenv.c.