home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / hcshdemo.zip / csh-os2.zip / SAMPLES / SH_2_CSH / README < prev   
Text File  |  1993-11-24  |  3KB  |  81 lines

  1. Converting Bourne or Korn shell scripts to Hamilton C shell scripts
  2. Copyright (c) 1992, 1993 by Hamilton Laboratories.  All rights reserved.
  3.  
  4.  
  5.     > Use TABS = 3 to view this file and any of the sed scripts <
  6.  
  7.  
  8. To translate an sh script to csh, run it thru the following pipeline:
  9.  
  10.     sed -f expr.sed | sed -f if.sed | sed -f proc.sed | sed -f case.sed |
  11.         sed -f for.sed | sed -f misc.sed | sed -f expr2.sed | sed -f quotes.sed
  12.  
  13. (or just use the sh-2-csh.csh script).
  14.  
  15. Each stage is using sed to fixup a specific type of language difference
  16. between sh and csh.  Order is important and the stages must be connected
  17. thru pipes rather than simply concatenating the scripts.  But any individual
  18. stage can be run independently for testing or just to see what it does.
  19. These sed scripts were tested with Hamilton sed and may not work perfectly
  20. on a standard Unix sed.  (Hamilton sed has a number of minor enhancements,
  21. e.g., to allow it to process scripts with relaxed spacing rules, etc.)
  22.  
  23. The result will (hopefully) be fairly good if the input is in clear,
  24. well-formatted style, but with these limitations:
  25.  
  26.     1.    The output will depend on the C shell being run with use of the
  27.         status variable and the setting for the escape symbol set as
  28.         follows:
  29.  
  30.             set tailstatus = 1        # The status variable should reflect the
  31.                                             #    return code for the rightmost process
  32.                                             #    in a pipeline rather than, by default,
  33.                                             #    the leftmost.
  34.  
  35.             set escapesym = \            # Use the Unix-style \, not the OS/2
  36.                                             #    default ^, as the escape symbol.
  37.  
  38.     2.    break statements will have to be manually rewritten, since sh
  39.         interprets break to mean break out of loops only, not case
  40.         statements.  Also, break n means break out of n levels, even
  41.         breaking out of loops entered in calling procedures.  The sed
  42.         scripts will turn break into FixBreak in the output.
  43.  
  44.     3. The Hamilton date command does not support formatting options.
  45.  
  46.     4. There's no egrep or awk in the Hamilton C shell package, but grep,
  47.         fgrep and sed are provided.
  48.  
  49.     5. Under the C shell, variables are either shell variable or
  50.         environment variables from the moment they're created.
  51.  
  52.     6. The scripts do a pretty good job editing most things, but some
  53.         things just don't go thru very well and will require hand tuning.
  54.         E.g., backquoted expr expressions with embedded escaped quotes
  55.         are garbled and escaped newlines may cause trouble.
  56.  
  57. To really see how the changes have worked out, diff the input and output
  58. with Hamilton diff, using the -! option to generate a merged listing using
  59. color to highlight the changes in context.  Use Hamilton more (hmore.exe)
  60. with the -i (interactive) option to browse the output and search forward
  61. and backward for changes, which will be marked by the ANSI escape sequences
  62. containing "[1;".
  63.  
  64.     diff -! foo.sh foo.csh | more -i
  65.  
  66. All Hamilton utilities have online help available with the -h option.  In
  67. addition, Hamilton more has a builtin help screen available during normal
  68. operation when you press H.
  69.  
  70. Regards,
  71.  
  72. Doug Hamilton
  73. Hamilton Laboratories
  74. 13 Old Farm Road
  75. Wayland, MA  01778-3117
  76.  
  77. Phone 508-358-5715
  78. FAX   508-358-1113
  79.  
  80. Internet  3890321@mcimail.com
  81.