home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 December / simtel1292_SIMTEL_1292_Walnut_Creek.iso / msdos / sysutl / shell35.arc / SHELL.DOC < prev   
Encoding:
Text File  |  1986-10-02  |  51.8 KB  |  1,254 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  69.  
  70.  
  71.  
  72.           NAME    
  73.           NAME  
  74.  
  75.  
  76.                pc-shell - pc command processor 
  77.  
  78.  
  79.           SYNOPSIS    
  80.           SYNOPSIS  
  81.  
  82.  
  83.                pc shell                                   
  84.                pc-shell  [-s] [-v] [-b] [arg1 ... argn] 
  85.  
  86.  
  87.           DESCRIPTION    
  88.           DESCRIPTION  
  89.  
  90.  
  91.                pc-shell is a command processor for IBM-PC's and compatibles that 
  92.                emulates  some  of  the  more desirable functions of the Berkeley
  93.                UNIX* C-shell. In addition, it implements PC-DOS versions of some 
  94.                of the common UNIX* commands  -ls, mv, cp, etc.  
  95.  
  96.  
  97.                     v                                                             
  98.                The -v option (verbose) causes the program to echo  all  commands
  99.                to the standard error stream before executing them.  
  100.  
  101.  
  102.                      b                                                            
  103.                The  -b  option  suppresses mapping of the backslash character to
  104.                the forward slash character in all  operations  that  communicate
  105.                with [PC|MS]DOS.    This is here primarily for compatibility with
  106.                PC-NET,  which  seems  to  choke  on  paths  containing   forward
  107.                slashes.  
  108.  
  109.  
  110.                arg1       argn                                                    
  111.                arg1  ...  argn  (the  command  line  arguments) are put into the
  112.                shell's environment as the variables $1 through $n.  
  113.  
  114.  
  115.  
  116.           Wild Card Substitution    
  117.           Wild Card Substitution  
  118.  
  119.  
  120.                Ambiguous file names are expanded to  a  list  of  matching  file
  121.                names on  the command line.  This can be defeated by quoting, and
  122.                by setting the NOGLOB environment variable to '1'.  
  123.  
  124.  
  125.                Command lines passed to external programs are  truncated  to  128
  126.                characters.  
  127.  
  128.  
  129.  
  130.           History Substitution    
  131.           History Substitution  
  132.  
  133.  
  134.  
  135.                History substitution is a powerful means to save retyping of long 
  136.                command lines.It allows you to do things like re-execute the last 
  137.                command,    re-execute  the last command but redirect output to a
  138.                file, or execute a  new  command  with  arguments  from  previous
  139.                command  lines.    The  last  20  commands  are saved, and can be
  140.                reviewed by typing the 'history' command.  
  141.  
  142.  
  143.                Previous commands can be referred to by their number, or relative 
  144.                to the  current  command's  number.    Parameters  from  previous
  145.                commands can be seperated out and used individually.  
  146.  
  147.  
  148.                History  substitutions  specifications  come  in  two parts - the
  149.                command number  specifier and the argument  specifier,  seperated
  150.                by a  colon.    The  argument    specifier  is optional; if it is
  151.                omitted, the entire command line is specified.  
  152.  
  153.  
  154.                <command specifier> ::= !! | !n | !-n | <shortcut> 
  155.  
  156.  
  157.  
  158.                                               -1-
  159.  
  160.  
  161.  
  162.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  163.  
  164.  
  165.  
  166.                !!  = last command
  167.                !n  = nth command
  168.                !-n = command n commands before current command number
  169.                !#  = the current command line
  170.  
  171.  
  172.                <arg specifier> ::= :[^$*] | [^$*] | :n | :n* | <searchstr> | <empty>
  173.                n   = number of argument (0 being the command name)
  174.                ^   = first argument (i.e. argv[1])
  175.                $   = last argument
  176.                *   = ^-$, or nothing if only one word on command line
  177.                n*  = arguments n through $
  178.  
  179.  
  180.                <searchstr> ::= (initial characters of a previous command)
  181.  
  182.  
  183.                <history subst specification> ::= <command specifier><arg specifier>
  184.  
  185.  
  186.                This is not as complicatated as  it  may  appear.    Here  is  an
  187.                example session.  
  188.  
  189.  
  190.                EXAMPLE 
  191.  
  192.  
  193.                0% ls *.c
  194.                *.c
  195.                foo.c bar.c
  196.                1% more foo.c
  197.                /* edit the last argument of the last command */
  198.                2% edit !!:$            
  199.                /* go off and edit */
  200.                /* reference last argument of last command */
  201.                3% fgrep foo !!:$ bar.c 
  202.                FOO.C : foo
  203.                BAR.C : foo
  204.                /* edit the second thru the last args of command 3 */
  205.                4% edit !3:2*            
  206.                (go off and edit)
  207.                /* repeat last command */
  208.                %5 !!
  209.                (go off and edit)
  210.                /* remove the 1st argument of the command 2 before the current one */
  211.                %6 rm !-6:^
  212.  
  213.  
  214.  
  215.                Several  shortcut  expressions  (that  don't  fit into the formal
  216.                description above) are also allowed.  !$, !^,  !*  are  allowable
  217.                synonyms for !!:$, !!:^, and !!:*.  It is also possible to select 
  218.                a previous command with one or more characters from the beginning 
  219.                of that command line.  
  220.  
  221.  
  222.                     %1 edit foo.c    # edit a source file
  223.                     %2 cc foo.c        # try and compile it
  224.                     %3 !e            # repeat command #1
  225.  
  226.  
  227.                History substitution here is a compatible subset of the [U|XE]NIX 
  228.                C shell    history  substitution  facility.    Cshell allows even
  229.                weirder combinations.  
  230.  
  231.  
  232.  
  233.           Variable Substitution    
  234.           Variable Substitution  
  235.  
  236.  
  237.  
  238.                                               -2-
  239.  
  240.  
  241.  
  242.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  243.  
  244.  
  245.  
  246.                Shell variables are synonymous for our purposes with  environment
  247.                strings, i.e.  they are defined with the 'set' command.  
  248.  
  249.  
  250.                Variables  are  referenced  on  the  command  line by prefacing a
  251.                variable name by a dollar sign.    Two  dollar  signs  in  a  row
  252.                signify a dollar sign character.  
  253.  
  254.  
  255.                As  mentioned  above, command line arguments are contained in the
  256.                                                      n                             
  257.                shell variables, $1 through $n, where n is the number of the last 
  258.                argument.  
  259.  
  260.  
  261.                EXAMPLE
  262.  
  263.  
  264.                %0 set home = c:/
  265.                %1 echo $home
  266.                C:/
  267.                %2 ls $home
  268.                C:/*.*
  269.                command.com
  270.                %3 echo $path
  271.                C:/bin
  272.  
  273.  
  274.                And so on.  
  275.  
  276.  
  277.  
  278.           Special variables    
  279.           Special variables  
  280.  
  281.  
  282.                There are a some shell variables that have special  meanings  for
  283.                                                               set                 
  284.                the shell.   They can be given values with the set command.  They
  285.                are 
  286.  
  287.  
  288.               NOCLOBBER    
  289.               NOCLOBBER  
  290.  
  291.  
  292.                       NOCLOBBER                                                   
  293.                    If NOCLOBBER is equal to '1', then existing files may not  be
  294.                    destroyed  by  output  redirection,  and  output  files to be
  295.                    appended to by >> must exist.  
  296.  
  297.  
  298.  
  299.               PROMPT    
  300.               PROMPT  
  301.  
  302.  
  303.                        PROMPT                                                     
  304.                    The PROMPT environment string is handled the same way  as  it
  305.                           COMMAND COM                                             
  306.                    is by  COMMAND.COM.    There  is one pc-shell-specific prompt
  307.                    string character  !    that  specifies  the  current  command
  308.                    index.   If no PROMPT environment string is defined, then the
  309.                    default is '$!% '.  
  310.  
  311.  
  312.           NOGLOB    
  313.           NOGLOB  
  314.  
  315.  
  316.                    NOGLOB                                                         
  317.                The NOGLOB environment string, if set to '1', will suppress  file
  318.                name expansion.  
  319.  
  320.  
  321.  
  322.           NODOS    
  323.           NODOS  
  324.  
  325.  
  326.                    NODOS                                                           
  327.                The NODOS  environment string, if set to '1', will keep the shell 
  328.                from   invoking   command.com   to  handle  commands  it  doesn't
  329.                understand.  
  330.  
  331.  
  332.  
  333.  
  334.                                               -3-
  335.  
  336.  
  337.  
  338.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  339.  
  340.  
  341.  
  342.           TEMP    
  343.           TEMP  
  344.  
  345.  
  346.                    TEMP                                                           
  347.                The TEMP environment, gives the directory in which to place  pipe
  348.                files.   This  can be a ram disk, or just someplace out of harm's
  349.                way.   This  variable  must  contain  a  trailing  slash,  if  it
  350.                specifies a subdirectory.  
  351.  
  352.  
  353.  
  354.           Multiple commands on one command line    
  355.           Multiple commands on one command line  
  356.  
  357.  
  358.                Command lines  are  split at semicolons.  This can be defeated by
  359.                quoting or escaping.  
  360.  
  361.  
  362.                EXAMPLE 
  363.  
  364.  
  365.                %0 ls -l *.c ; make shell.exe ; exit
  366.  
  367.  
  368.           Conditional command execution    
  369.           Conditional command execution  
  370.  
  371.  
  372.                If two commands are seperated by '&&', then the  second  will  be
  373.                executed only  if  the  first  returns 0 as an exit code.  If two
  374.                commands are seperated by '||', then the second will be  executed
  375.                only the first command returns non-zero as an exit code.  
  376.  
  377.  
  378.                Example 
  379.  
  380.  
  381.                    make shell.exe && chmod +w /bin/shell.exe && mv shell.exe /bin 
  382.  
  383.  
  384.                    If  the  make operation fails, then the chmod and the mv will
  385.                    not be executed.  
  386.  
  387.  
  388.                    make shell.exe || echo You blew it bub!
  389.  
  390.  
  391.                    If the make operation fails, then the echo operation will  be
  392.                    executed.  
  393.  
  394.  
  395.  
  396.           Character Escapes  Shell Comments  and Argument Quoting    
  397.           Character Escapes, Shell Comments, and Argument Quoting  
  398.  
  399.  
  400.                Any  character  preceded by a  \ (backslash) is copied unmodified
  401.                to the command buffer.  This allows you to suppress  the  special
  402.                meanings  of  shell  command characters, such as '|', ';', and '*
  403.                '.  
  404.  
  405.  
  406.                # is the shell comment character.  Anything on a line after  a  #
  407.                character is ignored.  
  408.  
  409.  
  410.                Command line arguments contained in quotes (single or double) may 
  411.                contain blank space (i.e. blanks or tabs).  Variable substitution 
  412.                will take  place  within strings surrounded by double quotes.  No
  413.                interpretation takes place within single quotes.   
  414.  
  415.  
  416.                Within  double  quotes,  the  'C'   language   escape   sequences
  417.                \r,\n,\b,\f, and  \a are honored - i.e.  they are mapped to their
  418.                corresponding control characters.  
  419.  
  420.  
  421.  
  422.           Startup and Script Files    
  423.           Startup and Script Files  
  424.  
  425.  
  426.  
  427.                                               -4-
  428.  
  429.  
  430.  
  431.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  432.  
  433.  
  434.  
  435.                If '-s' is specified on the command line the  program  will  look
  436.                for  a file called SHELL.RC in the current directory, and execute
  437.                it before passing  control to the console.  This  allows  you  to
  438.                set up  all  your alias commands.  It isn't a good idea to put an
  439.                'exit'  command  in  your  SHELL.RC  file,  as  the  shell   will
  440.                terminate.  
  441.  
  442.  
  443.                                                sh                                 
  444.                Any file  whose  extension  is .sh is run as a command file.  The
  445.                environment string PATH is used to locate the script file  if  it
  446.                isn't in  the  current  directory.  .sp 1 There is also a command
  447.                sh                                                                 
  448.                sh, into which shell scripts whose extension is not  .sh  can  be
  449.                redirected as standard input.  
  450.  
  451.  
  452.                EXAMPLE
  453.  
  454.  
  455.                %0 sh <batch.fil        # use the sh command
  456.                %1 shell <batch.fil     # run the external program
  457.  
  458.  
  459.                                    bat                                            
  460.                Files  ending  in  .bat  files  are  passed  to  COMMAND.COM  for
  461.                execution.  
  462.  
  463.  
  464.  
  465.           INPUT OUTPUT    
  466.           INPUT/OUTPUT  
  467.  
  468.  
  469.                                                          COMMAND COM              
  470.                I/O redirection operates as it does under COMMAND.COM  with  some
  471.                additional options: 
  472.  
  473.  
  474.             name   
  475.            <name 
  476.  
  477.  
  478.                               name                           
  479.                Opens the file name as the standard input.  
  480.  
  481.  
  482.              word   
  483.            <<word 
  484.  
  485.  
  486.                                                                            word   
  487.                reads  the  shell  input up to a line which is identical to word.
  488.                The resulting text is put into an anonymous temporary file, which 
  489.                is given to the command as standard input.  
  490.  
  491.  
  492.                 name  
  493.                >name
  494.                  name  
  495.                >!name
  496.                  name  
  497.                >&name
  498.                   name  
  499.                >&!name
  500.  
  501.  
  502.                             name                                                  
  503.                    The file name  is used as standard output.    If  it  doesn't
  504.                    exist,  it's  created; if it exists, it is truncated, and its
  505.                    previous contents are lost.  
  506.  
  507.  
  508.                                    NOCLOBBER                                      
  509.                    If the variable NOCLOBBER is set, the file must  not  already
  510.                    exist, or  an  error results.  The forms using an exclamation
  511.                    point override the NOCLOBBER variable's action.  
  512.  
  513.  
  514.                               name                                                
  515.                    The form >&name routes standard  error  along  with  standard
  516.                              name     
  517.                    output to name.  
  518.  
  519.  
  520.                  name  
  521.                >>name
  522.                   name  
  523.                >>!name
  524.                   name  
  525.                >>&name
  526.                    name  
  527.                >>&!name
  528.  
  529.  
  530.  
  531.  
  532.                                               -5-
  533.  
  534.  
  535.  
  536.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  537.  
  538.  
  539.  
  540.                                     name                                          
  541.                    Uses  the  file  name  as standard output, like >, but places
  542.                                                                NOCLOBBER           
  543.                    output at the end of file.  If the variable NOCLOBBER is set, 
  544.                    it is an error if the file doesn't already exist.  The  forms
  545.                    using  an exclamation point override the NOCLOBBER variable's
  546.                    action.  
  547.  
  548.  
  549.  
  550.               BUILT IN COMMANDS    
  551.               BUILT-IN COMMANDS  
  552.  
  553.  
  554.  
  555.                    Some of the internal commands are  UNIX*  style  replacements
  556.                    for  COMMAND.COM internal commands, and some are included for
  557.                    convenience.  
  558.  
  559.  
  560.                        Output of the 'commands' command
  561.  
  562.  
  563.                        a:              alias           b:              c:
  564.                        cat             cd              chdir           chmod
  565.                        cls             commands        copy            cp
  566.                        d:              del             dir             dump
  567.                        e:              echo            era             erase
  568.                        error           exit            f:              fgrep
  569.                        g:              h:              hd              history
  570.                        i:              j:              ls              md
  571.                        mkdir           mon             more            mv
  572.                        popd            pushd           pwd             rd
  573.                        read            rm              rmdir           set
  574.                        sh              switchar        tee             touch
  575.                        unalias         version         y
  576.  
  577.  
  578.                    There are many that are simply aliases, e.g.  'copy' and 'cp' 
  579.                    invoke the same program.  
  580.  
  581.  
  582.  
  583.               COMMAND DESCRIPTION SYNTAX    
  584.               COMMAND DESCRIPTION SYNTAX  
  585.  
  586.  
  587.                    terms used in syntax explanations :
  588.                    
  589.                    fname ::= PC-DOS ambiguous or unambiguous file or directory name.
  590.                    
  591.                    uname ::= unambiguous PC-DOS file or directory name
  592.                    
  593.                    string ::= any string of printable characters of arbitrary(<512) length.
  594.                    
  595.                    filelist ::= filename [filename .. filename]
  596.                    
  597.                    noargs ::= no arguments at all
  598.                    
  599.                    space ::= any white space characters
  600.                    
  601.                    [arg] ::= term is optional
  602.                    
  603.                    envstring ::=    <string>=<string> | <string><space>=<space><string> |
  604.                 <string><space><string>
  605.  
  606.  
  607.  
  608.               COMMANDS    
  609.               COMMANDS  
  610.  
  611.  
  612.  
  613.  
  614.                                               -6-
  615.  
  616.  
  617.  
  618.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  619.  
  620.  
  621.  
  622.                    drive  
  623.                    drive
  624.  
  625.  
  626.                        a: | b: | c: | d: | e: | f: | g: | h: | i: | j: <noargs> 
  627.  
  628.  
  629.                        changes default drive.  If you don't have such  a  drive,
  630.                        nothing happens.  
  631.  
  632.  
  633.                    alias  
  634.                    alias
  635.  
  636.  
  637.                        alias <envstring> 
  638.  
  639.  
  640.                        assigns cmdstring  to name.  name can now be used just as
  641.                        if it were a built-in or external command.  cmdstring may 
  642.                        contain history expressions or variable substitutions.  
  643.  
  644.  
  645.                        The syntax of this command is flexible - you can  specify
  646.                        alii  (?)  in  the form 'name=subst','name subst','name =
  647.                        subst', or  'name  =subst.'  However  you  need  a  space
  648.                                   before                                          
  649.                        character  before  a  single quote in order to specify an
  650.                        alias that contains blanks.  
  651.  
  652.  
  653.                            alias     set                                          
  654.                        The alias and set commands  are  case  sensitive,  unlike
  655.                                         COMMAND COM     
  656.                        their analogs in COMMAND.COM.  
  657.  
  658.  
  659.                    cat  
  660.                    cat
  661.  
  662.  
  663.                        cat [<filelist>] 
  664.  
  665.  
  666.                        copies specified  files  to standard output.  If none are
  667.                        given, copies standard input to standard output 
  668.  
  669.  
  670.                    cp  
  671.                    cp
  672.  
  673.  
  674.                        cp | copy <filelist> <uname> 
  675.  
  676.  
  677.                        copies specified files to destination file or device.  If 
  678.                        more than one file is in the file list, <uname> must be a 
  679.                        directory.  
  680.  
  681.  
  682.                    cd  
  683.                    cd
  684.  
  685.  
  686.                        cd | chdir <dirname> 
  687.  
  688.  
  689.                        makes <dirname> the current default directory.  
  690.  
  691.  
  692.                    chmod  
  693.                    chmod
  694.  
  695.  
  696.                        chmod [-|+[arwhs]*] <filelist> 
  697.  
  698.  
  699.                        change file permissions for specified files 
  700.  
  701.  
  702.                        +r, -r turn on or off read permission - i.e. hide the file.
  703.                        +w, -w turn on or off write permission.
  704.                        +h, -h turn on or off hidden attribute - converse of r
  705.                        +a, -a turn on or off archive attribute
  706.                        +s, -s turns on or off the system attribute
  707.  
  708.  
  709.                        Note that '-r'  or  '+rwh'  are  both  valid  syntax  for
  710.  
  711.  
  712.  
  713.                                               -7-
  714.  
  715.  
  716.  
  717.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  718.  
  719.  
  720.  
  721.                        switches.   Also  new permission switches are permissable
  722.                        between file names with the following  warning:  I  don't
  723.                        reset the masks between file names - if you have a second 
  724.                        batch  of  attribute  changes  on  the  command line, the
  725.                        effect is additive.  If you're  not  careful,  you  could
  726.                        make a mess of a files attributes.  
  727.  
  728.  
  729.                        If   you  don't  specify  any  attribute  switches,  file
  730.                        attributes will be set to 0, which  means  read,write,not
  731.                        hidden,not system, not  modified since last backup.  
  732.  
  733.  
  734.                    cls  
  735.                    cls
  736.  
  737.  
  738.                        cls <noargs> 
  739.  
  740.  
  741.                        clears the screen and homes the cursor.  
  742.  
  743.  
  744.                    commands  
  745.                    commands
  746.  
  747.  
  748.                        commands <noargs> 
  749.  
  750.  
  751.                        prints a  table  of  available  built-in  commands.  (see
  752.                        above) 
  753.  
  754.  
  755.                    del  
  756.                    del
  757.  
  758.  
  759.                        del 
  760.  
  761.  
  762.                        synonym for rm.  
  763.  
  764.  
  765.                    dir  
  766.                    dir
  767.  
  768.  
  769.                        dir 
  770.  
  771.  
  772.                        synonym for ls.  
  773.  
  774.  
  775.                    dirs  
  776.                    dirs
  777.  
  778.  
  779.                        dirs <noargs> 
  780.  
  781.  
  782.                        lists the directories on the directory stack.  (see pushd 
  783.                        and popd) 
  784.  
  785.  
  786.                    du  
  787.                    du
  788.  
  789.  
  790.                        du [drivename] 
  791.  
  792.  
  793.                                                             drivename             
  794.                        prints out remaining space on drive  drivename.   If  you
  795.                        leave  off  the  drivename,  it  defaults  to the current
  796.                        drive.  
  797.  
  798.  
  799.                    dump  
  800.                    dump
  801.  
  802.  
  803.  
  804.                        dump filespec [block [page]] | [segment:[offset]] [count] 
  805.  
  806.  
  807.                        Where a block is 64K bytes and a page is 256 bytes
  808.                        Segment:offset are standard 8086 notation in hexadecimal
  809.  
  810.  
  811.  
  812.                                               -8-
  813.  
  814.  
  815.  
  816.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  817.  
  818.  
  819.  
  820.                        Count is the number of bytes to dump in decimal
  821.  
  822.  
  823.                        This came from some anonymous public domain source, ported by me
  824.  
  825.  
  826.                    echo  
  827.                    echo
  828.  
  829.  
  830.                        echo <anything> 
  831.  
  832.  
  833.                                                            echo  on               
  834.                        echos argument list  to  screen.    echo  on  causes  all
  835.                        commands  to  be  echoed  before execution (i.e. sets the
  836.                                         echo off                                
  837.                        verbose  flag).  echo off turns off the verbose flag.  
  838.  
  839.  
  840.                    era  
  841.                    era
  842.  
  843.  
  844.                        era 
  845.  
  846.  
  847.                        synonym for rm.  
  848.  
  849.  
  850.                    error  
  851.                    error
  852.  
  853.  
  854.                        error <noargs> 
  855.  
  856.  
  857.                        prints returned value of last command to the screen.  
  858.  
  859.  
  860.                    exit  
  861.                    exit
  862.  
  863.  
  864.                        exit <noargs> 
  865.  
  866.  
  867.                        terminates execution of the currently running  sub-shell.
  868.                        If  you are at top level of execution, you will return to
  869.                        dos.  
  870.  
  871.  
  872.                    fgrep  
  873.                    fgrep
  874.  
  875.  
  876.                        fgrep <pattern> <filelist> 
  877.  
  878.  
  879.                        looks for unambiguous pattern  <pattern>  in  <filelist>.
  880.                        echos lines matching to the screen.  
  881.  
  882.  
  883.                    history  
  884.                    history
  885.  
  886.  
  887.                        history [size] 
  888.  
  889.  
  890.                                                                          size     
  891.                        prints history  list  to  standard  output.    If size is
  892.                        given, the number of commands history remembers is set to 
  893.                        size                                                       
  894.                        size.  If you change  the  size,  history  'forgets'  all
  895.                        previous commands and resets its counters to 0.  
  896.  
  897.  
  898.                    ls  
  899.                    ls
  900.  
  901.  
  902.                        ls | dir [-[alqctrR]] <filelist> 
  903.  
  904.  
  905.                        Lists files that match <filelist> 
  906.  
  907.  
  908.                        -a all files, including system files are listed.  '.' and 
  909.                        '..'  are  suppressed,  but you know they're there if you
  910.                        need them, don't you?  
  911.                        -l prints out file times, permissions, etc 
  912.  
  913.  
  914.  
  915.                                               -9-
  916.  
  917.  
  918.  
  919.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  920.  
  921.  
  922.  
  923.                        -q suppresses header line from display - useful when  you
  924.                        want to pipe stuff into another program.  
  925.                        -c print as one column.  
  926.                        -t sort by time, most recent last 
  927.                        -R recurse through all encountered subdirectories.  
  928.                        -r reverses sort order.  
  929.  
  930.  
  931.                    md  
  932.                    md
  933.  
  934.  
  935.                        md | mkdir <uname> 
  936.  
  937.  
  938.                        make a directory.  Prints an error if it can't be done 
  939.  
  940.  
  941.                    mon  
  942.                    mon
  943.  
  944.  
  945.                        mon <noargs> 
  946.  
  947.  
  948.                        mon                                                         
  949.                        mon prints to standard error a lot of cryptic information 
  950.                        on system variables thusly: 
  951.  
  952.  
  953.                            Corg : 0000 Cend : 715a Dorg : 0002 Dend 167a
  954.                            Uorg : 167a Uend : 327a mbot : 427c mtop 4800
  955.                            sbot : 0000 PSP  : 490d STKSIZ : 00256 HEAPSIZ : 00064
  956.                            dsval : 5033 csval : 491d
  957.                            STKLOW : 0001 MEMRY : 4680
  958.                            CS : 491d DS : 5033 SP : 4186
  959.  
  960.  
  961.                        You  can  probably  figure out what most of the variables
  962.                        mean.  If you have source and have broken the shell, this 
  963.                        command may help.  
  964.  
  965.  
  966.                    more  
  967.                    more
  968.  
  969.  
  970.                        more [-[0-9]*] [<filelist>] 
  971.  
  972.  
  973.                        List file to screen with pauses 
  974.  
  975.  
  976.                        -n specify tab width when expanding tabs, where n  is  an
  977.                        integer.   more acts like 'cat' when redirected - you can
  978.                        concatenate files in  this  manner.    If  no  files  are
  979.                        specifed, standard input is 'mored.' 
  980.  
  981.  
  982.                    mv  
  983.                    mv
  984.  
  985.  
  986.                        mv [-v] <filelist> <uname> 
  987.  
  988.  
  989.                        moves  specified  file  or  files  to  target specifed by
  990.                        <uname>.  If there is more than one file in list, <uname> 
  991.                        must be a directory 
  992.  
  993.  
  994.                         v                                                         
  995.                        -v  will  print  out  a  message   saying   how   it   is
  996.                        accomplishing   the   move,   which   is   probably  more
  997.                        interesting to me than you.  
  998.  
  999.  
  1000.                    popd  
  1001.                    popd
  1002.  
  1003.  
  1004.                        popd <noargs> 
  1005.  
  1006.  
  1007.  
  1008.  
  1009.                                              -10-
  1010.  
  1011.  
  1012.  
  1013.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  1014.  
  1015.  
  1016.  
  1017.                        returns to directory at top of directory stack.  
  1018.  
  1019.  
  1020.                    pushd  
  1021.                    pushd
  1022.  
  1023.  
  1024.                        pushd [<uname>] 
  1025.  
  1026.  
  1027.                        save current working directory on  directory  stack,  and
  1028.                        changes current working directory to <uname>.  
  1029.  
  1030.  
  1031.                        If  no <uname> is given, the current directory is swapped
  1032.                        with the top of the directory stack.  
  1033.  
  1034.  
  1035.                    pwd  
  1036.                    pwd
  1037.  
  1038.  
  1039.                        pwd 
  1040.  
  1041.  
  1042.                        prints current working directory to standard output.  
  1043.  
  1044.  
  1045.                    read  
  1046.                    read
  1047.  
  1048.  
  1049.                        read vname0 [vname1 .. vnamen] 
  1050.  
  1051.  
  1052.                        read                                                       
  1053.                        read reads a line from standard input, and  assigns  each
  1054.                        word  from  the  line  to  the  corresponding environment
  1055.                                               vname0          vnamen     
  1056.                        variable specified by  vname0  through vnamen.  
  1057.  
  1058.  
  1059.                        EXAMPLE 
  1060.  
  1061.  
  1062.                            read a b    # read into environment variables a and b
  1063.                        you type
  1064.                            hello there
  1065.                            echo $a
  1066.                        the shell echos
  1067.                            hello
  1068.                            echo $b
  1069.                        there
  1070.  
  1071.  
  1072.                        If there are fewer environment variables specified on the 
  1073.                        command line than there are words in  the  command  line,
  1074.                        the  last  environment  variable will contain the rest of
  1075.                        the words on the line.  
  1076.  
  1077.  
  1078.                        EXAMPLE 
  1079.  
  1080.  
  1081.                            read a b    # read into environment variables a and b
  1082.                        you type
  1083.                            hello there Mister Jones
  1084.                            echo $a
  1085.                        the shell echos
  1086.                            hello
  1087.                            echo $b
  1088.                        there Mister Jones
  1089.  
  1090.  
  1091.                        If there are more environment variables  on  the  command
  1092.                        line than words on the line read from standard input, the 
  1093.                        left-over  environment variables' state will not change -
  1094.                        if they were defined in the  environment  already,  their
  1095.                        status  won't  change,  and if they weren't defined, they
  1096.  
  1097.  
  1098.  
  1099.                                              -11-
  1100.  
  1101.  
  1102.  
  1103.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  1104.  
  1105.  
  1106.  
  1107.                        stay undefined.  
  1108.  
  1109.  
  1110.                    rd  
  1111.                    rd
  1112.  
  1113.  
  1114.                        rd | rmdir <uname> 
  1115.  
  1116.  
  1117.                        remove specified directory if possible.  
  1118.  
  1119.  
  1120.                    rm  
  1121.                    rm
  1122.  
  1123.  
  1124.                        rm [-q] <filelist> 
  1125.  
  1126.  
  1127.                        blows away all files in <filelist>. If -q  is  specified,
  1128.                        will ask if they should be removed.  
  1129.  
  1130.  
  1131.                    set  
  1132.                    set
  1133.  
  1134.  
  1135.                        set [<envstring>] 
  1136.  
  1137.  
  1138.                        sets a string in the environment.  If you specify 'name=' 
  1139.                        with  no  string  after,  it  will  remove  it  from  the
  1140.                        environment.  If you don't specify a string,  set  prints
  1141.                        out current environment.  
  1142.  
  1143.  
  1144.                        The  syntax of this command is flexible - you can specify
  1145.                        set in the form 'set  name=subst','set  name  subst','set
  1146.                        name  =  subst', or 'set name =subst.' However you need a
  1147.                                        before                                      
  1148.                        space character before a single quote in order to specify 
  1149.                        a substitution string that contains blanks.  
  1150.  
  1151.  
  1152.                    sh  
  1153.                    sh
  1154.  
  1155.  
  1156.                        sh [ <arg1> .. <argn>] <scriptfile 
  1157.  
  1158.  
  1159.                        forks a  'local'  shell  -  i.e.    saves  all  pertinent
  1160.                        information  about  the  shell  you're  currently  in and
  1161.                        invokes the command processor function recursively,  with
  1162.                        scriptfile                                                 
  1163.                        scriptfile as  input.    The  arguments  are copied to $1
  1164.                        through $N environment strings, overwriting  the  startup
  1165.                        arguments.  
  1166.  
  1167.  
  1168.                        sh                                                         
  1169.                        sh  gives  you  a  way to run scripts, without loading an
  1170.                        extra copy of shell.com or small.com.  
  1171.  
  1172.  
  1173.                    switchar  
  1174.                    switchar
  1175.  
  1176.  
  1177.                        switchar [schar] 
  1178.  
  1179.  
  1180.                                                         schar      schar          
  1181.                        sets the DOS switch character to schar.  If schar is  not
  1182.                        given, the current switch character is echoed.  
  1183.  
  1184.  
  1185.                    tee  
  1186.                    tee
  1187.  
  1188.  
  1189.                        tee <uname> 
  1190.  
  1191.  
  1192.                        Copies  standard  input  to standard output, depositing a
  1193.                        copy in <uname> 
  1194.  
  1195.  
  1196.  
  1197.  
  1198.                                              -12-
  1199.  
  1200.  
  1201.  
  1202.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  1203.  
  1204.  
  1205.  
  1206.                    touch  
  1207.                    touch
  1208.  
  1209.  
  1210.                        touch <filelist> 
  1211.  
  1212.  
  1213.                        Makes  the  modification  time  of  specified  files  the
  1214.                        current date and time.  
  1215.  
  1216.  
  1217.                    unalias  
  1218.                    unalias
  1219.  
  1220.  
  1221.                        unalias aliasname 
  1222.  
  1223.  
  1224.                        remove alias name from the alias list.  
  1225.  
  1226.  
  1227.                    y  
  1228.                    y
  1229.  
  1230.  
  1231.                        y <filelist> 
  1232.  
  1233.  
  1234.                        copies standard input to standard output, and then copies 
  1235.                        the specified  files  to  standard  output.   Sort of the
  1236.                        opposite of tee, in other words.  
  1237.  
  1238.  
  1239.  
  1240.               Helpful hints    
  1241.               Helpful hints  
  1242.  
  1243.  
  1244.  
  1245.                    Use forward slashes in all path names.  (See  note  below  on
  1246.                    switch  characters)    If  you  use  DOS  3.0 or higher, this
  1247.                    includes paths to transient programs.  
  1248.  
  1249.  
  1250.                    put single quotes around arguments with semicolons  in  them,
  1251.                    so they don't turn into command delimiters.  
  1252.  
  1253.  
  1254.                    The  set  command affects only the local shell's environment.
  1255.                    You can 'exit' to command.com and the original environment is 
  1256.                    intact.  The  local  environment  is  2K  large  -  which  is
  1257.                    useful.  
  1258.  
  1259.  
  1260.                    When  using  the  Microsoft  C  compiler  under pc-shell, the
  1261.                    compiler has a bad habit of  look  for  parameters  beginning
  1262.                    with forward  slashes  in  the environment.  If you get their
  1263.                    famous  'P0  :  bad  option'  message,   try   revising   the
  1264.                    environment.  
  1265.  
  1266.  
  1267.                    Anything  compiled  with  Microsoft  C  3.0  that  uses their
  1268.                    system, exec, and spawn functions will complain about forward 
  1269.                    slashes.  Use the -b option.  
  1270.  
  1271.  
  1272.                    Sidekick  has  obnoxious  ideas  about  when  it  should  and
  1273.                    shouldn't pop  up.    From  the shell prompt you have to type
  1274.                    <HOT-KEY><RETURN> to get it to wake up.   The  <RETURN>  gets
  1275.                    passed back to  the  shell.  Why?  Talk to Borland. I use DOS
  1276.                    function 3F (read from file or device) to get keys,  and  you
  1277.                    can't get any more vanilla than that.  
  1278.  
  1279.  
  1280.  
  1281.               Implementation notes    
  1282.               Implementation notes  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.                                              -13-
  1289.  
  1290.  
  1291.  
  1292.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  1293.  
  1294.  
  1295.  
  1296.                    DOS  doesn't  acknowledge  a  'change  default drive' command
  1297.                    until you issue a 'get current directory' call.   Why?    The
  1298.                    only way I figured this out is by disassembling command.com.  
  1299.  
  1300.  
  1301.                    PC|MS-DOS has  a  limit  of  20  file  handles.  If you add a
  1302.                    command that opens files, make sure you catch the  ctrl-break
  1303.                    signal and close them.  Look at CAT.C or Y.C for examples.  
  1304.  
  1305.  
  1306.                    DON'T  REDIRECT  INPUT  INTO  PRINT. Print gets all hosed up.
  1307.                    Print has lots of trouble in general with the  pc-shell,  and
  1308.                    should be avoided.  
  1309.  
  1310.  
  1311.               BUGS    
  1312.               BUGS  
  1313.  
  1314.  
  1315.  
  1316.                    Due  to  the way that environment strings are expanded on the
  1317.                    command line, semicolons inside  shell  variables  look  like
  1318.                    command seperators.    If  you enclose them in double quotes,
  1319.                    the problem will go away.  
  1320.  
  1321.  
  1322.                    I have noticed intermittent problems running on an  AT,  with
  1323.                    DOS  3.0,  but  have been unable to reproduce them on a PC. I
  1324.                    suspect bugs in DOS 3.0 that are absent in 3.1. If you notice 
  1325.                    any consistent problems, send  me a bug report.  
  1326.  
  1327.  
  1328.               HISTORY    
  1329.               HISTORY  
  1330.  
  1331.  
  1332.  
  1333.  
  1334.                   V 2 0    
  1335.                   V 2.0  
  1336.  
  1337.  
  1338.                        Minor bug fixes.  Started allocating command buffers  out
  1339.                        of heap rather than stack, reducing stack usage.  Stopped 
  1340.                        releasing source with executables.  
  1341.  
  1342.  
  1343.                   V 2 1    
  1344.                   V 2.1  
  1345.  
  1346.  
  1347.                        Fixed the bug that made "mv foo .." throw away the source 
  1348.                        file and  move  it to "..foo", (i.e. nowhere).  Added the
  1349.                        sh command,  that  allows  you  to  run  scripts  without
  1350.                        re-invoking the shell.  
  1351.  
  1352.  
  1353.                   V 2 2    
  1354.                   V 2.2  
  1355.  
  1356.  
  1357.                        Fixed  the bug that locked pc up when a command line with
  1358.                        a leading ; was entered.  Changed fork code so that files 
  1359.                        with the extension .sh are run as scripts.    The  equals
  1360.                        sign in alias and set is now optional.  
  1361.  
  1362.  
  1363.                   V 2 3    
  1364.                   V 2.3  
  1365.  
  1366.  
  1367.                        Removed  information  about versions 1.0 through 1.6 from
  1368.                        documentation, adding any relevant material to  the  tips
  1369.                        or implementation  notes sections.   Added redirection of
  1370.                        standard error, and checking for  NOCLOBBER.  Implemented
  1371.                        execution of the prompt string.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.                                              -14-
  1378.  
  1379.  
  1380.  
  1381.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  1382.  
  1383.  
  1384.  
  1385.                   V 2 4    
  1386.                   V 2.4  
  1387.  
  1388.  
  1389.                        The  problem running external programs written by IBM and
  1390.                        Microsoft  has  finally  been  traced  to  Aztecs  fexecv
  1391.                        function.   When  is  an  ASCIIZ  string  not  an  ASCIIZ
  1392.                        string?  When you need to put a single carriage return on 
  1393.                        the end of it.  THANKS to Programmers Journal. NOTE  WELL
  1394.                        that  needing  a carriage return in your command tail for
  1395.                        EXEC calls is note documented in the IBM PC-DOS technical 
  1396.                        reference.  
  1397.  
  1398.  
  1399.                        All references to the  Aztec  screen  library  have  been
  1400.                        removed,  so  this  should  work  on Rainbows, Compupros,
  1401.                        AMPROs etc.  etc.  etc.  ls is slower, but  its  a  small
  1402.                        price to  pay.    If  you want a fast version, one can be
  1403.                        created for you if you mail a contribution (hint,hint).  
  1404.  
  1405.  
  1406.                        mv now will do the right thing when you try to move to  a
  1407.                        drive  that  has been joined to a directory (DOS 3.1). It
  1408.                        also now has a  verbose  switch,  which  tells  you  what
  1409.                        exactly its doing.  When I started writing a mv, I had no 
  1410.                        idea  how  many  special  cases I would have to take care
  1411.                        of.  
  1412.  
  1413.  
  1414.                   V 2 5    
  1415.                   V 2.5  
  1416.  
  1417.  
  1418.                        Problem with using the wrong path to search for  external
  1419.                        programs solved.    Main  command line parsing changed so
  1420.                        that  NOGLOB  could  be  used  to  suppress   file   name
  1421.                        expansion.  
  1422.  
  1423.  
  1424.                   V 2 6    
  1425.                   V 2.6  
  1426.  
  1427.  
  1428.                        Many stupid  bugs  in 2.5 are addressed (sorry folks).  I
  1429.                        now peek inside double quotes to do  variable  expansion.
  1430.                        Double quotes are now stripped.  
  1431.  
  1432.  
  1433.                   V 2 7    
  1434.                   V 2.7  
  1435.  
  1436.  
  1437.                        Added read.    Fixed  bug  in  ls that would occasionally
  1438.                        leave you in a different directory.    The  exit  command
  1439.                        will  now  just  pop  you out a level of shell execution,
  1440.                        rather than kicking you out to the DOS prompt.  
  1441.  
  1442.  
  1443.                   V 2 8    
  1444.                   V 2.8  
  1445.  
  1446.  
  1447.                        Fixed bug  in  more  that  made  it  puke  when  you  hit
  1448.                        <CTRL>-<BREAK> at the bottom of a screen-full.  Made move 
  1449.                        and  cp  preserve  file  times when they have to create a
  1450.                        target.  
  1451.  
  1452.  
  1453.                   V 2 9    
  1454.                   V 2.9  
  1455.  
  1456.  
  1457.                        Fixed bug in ls that caused it to get confused  when  you
  1458.                        did an  'ls  -R'  on  a  drive other than default.  Also,
  1459.                        stopped it from hanging on an empty pipe.  Added the 'du' 
  1460.                        command - which is simply the last line of ls  -l.  Shell
  1461.                        scripts will now be searched for on PATH.  
  1462.  
  1463.  
  1464.  
  1465.                                              -15-
  1466.  
  1467.  
  1468.  
  1469.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  1470.  
  1471.  
  1472.  
  1473.                   V 3 0    
  1474.                   V 3.0  
  1475.  
  1476.  
  1477.                        Bug  fixed  : when you switched to a disk for which there
  1478.                        was no /tmp directory, the shell couldn't open  its  pipe
  1479.                        files.    Now  pipe  files  are  opened  in  the  default
  1480.                        directory.  If you have a better idea, let me know.  
  1481.  
  1482.  
  1483.                        Added a critical error handler - if you  get  the  abort,
  1484.                        retry, ignore message and abort, you return to the shell, 
  1485.                        rather than  to  DOS.  It is possible that all the memory
  1486.                        allocated during the execution of the  offending  command
  1487.                        may  not  be freed, in which case the shell could run out
  1488.                        of memory.  Just give it the exit command  and  re-invoke
  1489.                        if that happens.  
  1490.  
  1491.  
  1492.                        If  you  type something that the shell can't interpret as
  1493.                        an internal command, run as  an  external  program  or  a
  1494.                        script, I  give  command.com  a  crack  at  it.   You can
  1495.                        therefore now run dos batch files  transparently.    This
  1496.                        slows  things  down  somewhat  if  you type totally bogus
  1497.                        commands, so this feature can be  turned  off  with  "set
  1498.                        NODOS=1".  
  1499.  
  1500.  
  1501.                   V 3 1    
  1502.                   V 3.1  
  1503.  
  1504.  
  1505.                        Some general  cleanup.    Added  a function that makes an
  1506.                        absolute path from any relative path,  which  cleaned  up
  1507.                        mv, ls, and cp quite a bit.  
  1508.  
  1509.  
  1510.                        Went back  to  .com  format for pc-shell and small.  This
  1511.                        makes the archive file about 1K smaller on average.  
  1512.  
  1513.  
  1514.                   V 3 2    
  1515.                   V 3.2  
  1516.  
  1517.  
  1518.                               b                                                   
  1519.                        Added -b option in hopes of being  more  compatible  with
  1520.                        recalcitrant   software  (like  PC-NET)  that  chokes  on
  1521.                        forward slashes in paths.  It should be  noted  that  DOS
  1522.                        2.XX  versions  don't  like  forward  slashes in the PATH
  1523.                        environment string.  
  1524.  
  1525.  
  1526.                        Stopped closing standard handles  3  and  4  on  startup.
  1527.                        This  should  make  weird  things  like  Wordstar printer
  1528.                        output being redirected to the screen go away.  
  1529.  
  1530.  
  1531.                        Single or double quotes around redirected file names  are
  1532.                        now permitted.  
  1533.  
  1534.  
  1535.                   V 3 3    
  1536.                   V 3.3  
  1537.  
  1538.  
  1539.                                                b                                  
  1540.                        Refined behavior   of  -b  option.    Fixed  aliasing  in
  1541.                        compound commands.  Deleted small.com  from  distribution
  1542.                        package because of lack of interest.  Fixed bug in add to 
  1543.                        environment  function, that made parts of the environment
  1544.                        disappear.  Made sidekick work slightly better.  Mv  will
  1545.                        now work on directories under DOS V 3.0 or later.  
  1546.  
  1547.  
  1548.                   V 3 4    
  1549.                   V 3.4  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.                                              -16-
  1555.  
  1556.  
  1557.  
  1558.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  1559.  
  1560.  
  1561.  
  1562.                        Added  logic  to  use  the TEMP environment string to put
  1563.                        pipe files someplace useful.  
  1564.  
  1565.  
  1566.                   V 3 5    
  1567.                   V 3.5  
  1568.  
  1569.  
  1570.                        Tuning and linting.  Added pushd with no arguments.  
  1571.  
  1572.  
  1573.                   LICENCING STATEMENT    
  1574.                   LICENCING STATEMENT  
  1575.  
  1576.  
  1577.                        PC-SHELL is not in the public domain.  I, Kent  Williams,
  1578.                        retain   all   rights   of   ownership  over  source  and
  1579.                        executables, unless I explicitly transfer such rights  to
  1580.                        someone else.  
  1581.  
  1582.  
  1583.                        All  persons  who  come into possesion of PC-SHELL in the
  1584.                        binary-only version are entitled to use it  however  they
  1585.                        wish.  No  warranty is given or implied.  All persons who
  1586.                        come into possesion of  PC-SHELL  are  also  entitled  to
  1587.                        redistribute   the  package  in  any  way  they  see  fit
  1588.                        providing that 
  1589.  
  1590.  
  1591.                             1) The package is distributed intact.    This  means
  1592.                             that  the  archive  file  or  distribution  diskette
  1593.                             contains PC-SHELL.COM, SMALL.COM and SHELL.DOC,  and
  1594.                             that  no  changes  have  been  made  to any of these
  1595.                             files.  
  1596.  
  1597.  
  1598.                             2) That no charge is made, beyond a nominal fee  for
  1599.                             media duplication.  
  1600.  
  1601.  
  1602.                        The   above   three   paragraphs  constitute  an  limited
  1603.                        non-commercial licence to PC-SHELL binaries to anyone who 
  1604.                        obtains it.   This  distiguishes  it  from  being  public
  1605.                        domain  only  in  that I retain enough control over it to
  1606.                        protect my own interests.  (Take heart, hackers!) 
  1607.  
  1608.  
  1609.                        All person who obtain copies of source code  are  granted
  1610.                        unlimited noncommercial  use  thereof.   This source code
  1611.                        licence is not transferrable to any other party, for  any
  1612.                        reason.  
  1613.  
  1614.  
  1615.                        In addition, no modified versions of the program PC-SHELL 
  1616.                        may   be  distributed  by  commercial  or  non-commercial
  1617.                        means.  
  1618.  
  1619.  
  1620.                        Any company  wishing  to  purchase  source  licenses  are
  1621.                        subject to these further restrictions.  
  1622.  
  1623.  
  1624.                             1)  That  no part of the source code is used, in any
  1625.                             form in any program sold commercially.  
  1626.  
  1627.  
  1628.                             2) That a licence fee will be  paid  for  each  user
  1629.                             within  a company of PC-SHELL, according to the rate
  1630.                        schedule below.  
  1631.  
  1632.  
  1633.                   PRICING    
  1634.                   PRICING  
  1635.  
  1636.  
  1637.                        Noncommercial Personal Use - 25.00$
  1638.  
  1639.  
  1640.  
  1641.                                              -17-
  1642.  
  1643.  
  1644.  
  1645.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  1646.  
  1647.  
  1648.  
  1649.                        Commercial User    - 25.00$, plus 15.00$ per each additional user.
  1650.                        Commercial Distribution - by written agreement only
  1651.  
  1652.  
  1653.                             For the above prices you will receive: 
  1654.  
  1655.  
  1656.                             1) Complete source code for shell, with makefile 
  1657.                             2) Source and executable for the text formatter used 
  1658.                             to prepare this documentation.  NOTE: I didn't write 
  1659.                             this program, and am distributing it  as  a  service
  1660.                             only.  
  1661.  
  1662.  
  1663.                             3) Executable and documentation for NDMAKE, the best 
  1664.                             make  available for love or money on PC-DOS. This is
  1665.                             distributed as a service only.    Please  honor  the
  1666.                             author's request for donations.  
  1667.  
  1668.  
  1669.                             4)  Source  for as many other Unix Utilities as will
  1670.                             fit on the disk.  Currently I am distributing  grep,
  1671.                             calls, fgrep,  cut,  paste,  tail, ctags.  I did not
  1672.                             write these programs, and am distributing them as  a
  1673.                             service only.  
  1674.  
  1675.  
  1676.                             As  always, miscellaneous contributions are welcome.
  1677.                             As anyone who has contacted  me  is  aware,  I  will
  1678.                             provide  as  much  help  as  I  can, in fixing bugs,
  1679.                             providing   updates,   taking   suggestions,   etc.,
  1680.                             regardless of monetary arrangements.  
  1681.  
  1682.  
  1683.                             QUESTIONS COMMENTS BUGREPORTS GOTO 
  1684.                             KENT WILLIAMS
  1685.                             722 Rundell St.
  1686.                             Iowa City, IA 52240
  1687.                             (319) 338-6053 (HOME VOICE)
  1688.                             
  1689.                             * UNIX is an unregistered trademark of AT&T.
  1690.  
  1691.  
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.                                              -18-
  1717.  
  1718.  
  1719.