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 \ 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.