7.5. Testing Your Knowledge of Tests

The systemwide xinitrc file can be used to launch the X server. This file contains quite a number of if/then tests. The following is excerpted from an "ancient" version of xinitrc (Red Hat 7.1, or thereabouts).

   1 if [ -f $HOME/.Xclients ]; then
   2   exec $HOME/.Xclients
   3 elif [ -f /etc/X11/xinit/Xclients ]; then
   4   exec /etc/X11/xinit/Xclients
   5 else
   6      # failsafe settings.  Although we should never get here
   7      # (we provide fallbacks in Xclients as well) it can't hurt.
   8      xclock -geometry 100x100-5+5 &
   9      xterm -geometry 80x50-50+150 &
  10      if [ -f /usr/bin/netscape -a -f /usr/share/doc/HTML/index.html ]; then
  11              netscape /usr/share/doc/HTML/index.html &
  12      fi
  13 fi

Explain the test constructs in the above snippet, then examine an updated version of the file, /etc/X11/xinit/xinitrc, and analyze the if/then test constructs there. You may need to refer ahead to the discussions of grep, sed, and regular expressions.