
                    How to Demo Hamilton C shell



   To set up the Hamilton C shell demo, first install it just as
described in the manual on pages 11 and 12, including setting up
the environmental variables (HOME, PATH, COLORS, TABS, ADDITIONS,
etc.) in the control panel as shown in the manual.

   A good demonstration might go as follows.  What you type is
shown in Courier Bold, machine responses are in Courier and my
comments are in italics.

1 C% cd \hamilton   Go to the Hamilton C shell directory
2 C% ls -l          List the contents of the directory.  Notice
                    how subdirectories are shown highlighted.  The
                    C shell makes extensive use of color and all
                    colors are completely user-customizable.
D----  Apr 14  5:00          -  bin
D----  Apr 14  5:00          -  samples
-----  Apr 14  5:00       1712  login.csh
-----  Apr 14  5:00       5215  readme
---A-  May 20  2:00      31410  readme.too
-----  Apr 14  5:00       4369  startup.csh
3 C% ls bin         List the bin directory, showing all the
                    utilities.  Notice that all the usual
                    favorites such as grep, fgrep, head, tail,
                    etc., are included.
binedit.exe   dskread.exe   hrm.exe       split.exe     uniq.exe
cat.exe       dskwrite.exe  ls.exe        strings.exe   ver.csh
chmod.exe     dt.exe        mkdir.exe     sum.exe       vl.exe
cp.exe        du.exe        mv.exe        tabs.exe      wc.exe
csh.exe       fgrep.exe     newer.exe     tail.exe      whereis.csh
cut.exe       grep.exe      older.exe     tar.exe       xd.exe
des.exe       head.exe      pwd.exe       tee.exe
diff.exe      hlabel.exe    rmdir.exe     touch.exe
dim.exe       hmore.exe     sed.exe       tr.exe
4 C% alias mi       It has aliases -- here's an alias for the
                    more filter, starting it up in interactive
                    mode (so it'll first clear the screen and
                    stay around even if it's less than a
                    screenful.)
mi           more -i
5 C% grep -h | mi   Everything always has online help with the -h
                    option.
        Regular expression pattern search of text files,
        Release 2.1

Usage:  grep [-hcilnqsv-] [-f ptrnfile] [ pattern ] [ file1 file2
...]

   grep uses special patterns called regular expressions to filter
   what it reads from stdin or from any files you specify.
:
--- more --- (Press H for Help)  _ Notice we can scroll up and
                    down with the arrow keys (Do it).  And the
                    more filter itself has online help by
                    pressing H.  (Press H to show it, then press
                    any key to exit the help screen, followed
                    by Q or ESC to get out.)
6 C% time factor 12341234     The C shell is a powerful scripting
                    language.  Here's an example, factoring a large
                    number.  Notice that we can time any command
                    to see how long it takes.
2
73
137
617
0:00:01.37
7 C% whereis factor This is actually a C shell script.  We can
                    find it with the whereis command.
c:\hamilton\samples\factor.csh
8 C% mi `!!`        (Note that this is typed with BACKQUOTES,
                    located next to the numeric one.)  Let's
                    go browse it.  Here, the !! (pronounced
                    bang-bang) part means pick up the text of
                    the previous command (the whereis factor).
                    The backquotes mean run what's inside there
                    and paste the output (the
                    c:\hamilton\samples\whereis.csh result) back
                    onto the command line.  That's called
                    command substitution, passing the filename
                    as an argument to mi, which we saw was the
                    alias for more.  So what we'll do is browse
                    that script.

proc factor(n)      Notice that this C shell has procedures,
   if (n > 3) then
      for i = 2 to floor(sqrt(n)) do    a genuine numeric for
                                        loop, built-in functions
                                        like floor and square root,
         if (n % i == 0) then
            echo $i
            return factor(n//i)         and procedures can even be
                                        recursive.  Not surprisingly,
                                        a lot of customers are using
                                        Hamilton C shell with thousands
                                        of lines of scripts.  For
                                        example, Sybase uses it to
                                        run the build for SQL Server,
                                        Microsoft's languages group
                                        uses it to run nightly regression
                                        tests, etc.
         end
      end
   end
   return n
end
:
9 C% echo \<Ctrl-D> Finally, the C shell has a lot of "creature
                    comforts" such as filename completion and
                    command line editing.  Here, e.g., we'll
                    expand in-place all the names of the files
                    in the root.  So for folks coming from
                    a UNIX background -- or anyone looking simply
                    for a more powerful scripting or development
                    environment, Hamilton C shell can be very
                    attractive, offering instant productivity
                    gains.
