home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 22 gnu / 22-gnu.zip / ms_sh22b.zip / sh.man < prev    next >
Text File  |  1993-12-02  |  182KB  |  3,513 lines

  1.  
  2.  
  3.  
  4. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      sh, rsh - shell, the standard/restricted command programming
  10.      language
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      sssshhhh [ ----aaaacccceeeeffffhhhhiiiikkkknnnnmmmmrrrrssssttttuuuuvvvvxxxx0000RRRR ] [ args ]
  14.      rrrrsssshhhh [ ----aaaacccceeeeffffhhhhiiiikkkknnnnmmmmrrrrssssttttuuuuvvvvxxxx0000RRRR ] [ args ]
  15.  
  16. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  17.      _S_h is a command programming language that executes  commands
  18.      read from a terminal or a file.  _R_s_h is a restricted version
  19.      of the standard command interpreter _s_h; it is used to set up
  20.      login  names  and  execution environments whose capabilities
  21.      are more controlled than those of the standard  shell.   See
  22.      _I_n_v_o_c_a_t_i_o_n below for the meaning of arguments to the shell.
  23.  
  24.   DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss
  25.      A _b_l_a_n_k is a tab or a  space.   A  _n_a_m_e  is  a  sequence  of
  26.      letters,  digits,  or underscores beginning with a letter or
  27.      underscore.  A _p_a_r_a_m_e_t_e_r is a name, a digit, or any  of  the
  28.      characters ****, @@@@, ####, ????, ----, $$$$, and !!!!.
  29.  
  30.   CCCCoooommmmmmmmaaaannnnddddssss
  31.      A _s_i_m_p_l_e-_c_o_m_m_a_n_d is a sequence of non-blank _w_o_r_d_s  separated
  32.      by _b_l_a_n_k_s.  The first word specifies the name of the command
  33.      to be executed.  Except as specified  below,  the  remaining
  34.      words  are  passed as arguments to the invoked command.  The
  35.      command name is passed as argument  0  (see  _e_x_e_c(2)).   The
  36.      _v_a_l_u_e  of  a  simple-command  is  its exit status if it ter-
  37.      minates normally, or (octal)  200+_s_t_a_t_u_s  if  it  terminates
  38.      abnormally (see _s_i_g_n_a_l(2) for a list of status values).
  39.  
  40.      A _p_i_p_e_l_i_n_e is a sequence of one or more  _c_o_m_m_a_n_d_s  separated
  41.      by |||| (or, for historical compatibility, by ^^^^).  The standard
  42.      output of each command  but  the  last  is  connected  by  a
  43.      _p_i_p_e(2)  to  the  standard  input of the next command.  Each
  44.      command is run as a separate process; the  shell  waits  for
  45.      the  last  command to terminate.  The exit status of a pipe-
  46.      line is the exit status of the last command.
  47.  
  48.      A _l_i_s_t is a sequence of one or more pipelines  separated  by
  49.      ;;;;,  &&&& (OOOOSSSS////2222 only), &&&&&&&&, or ||||||||, and optionally terminated by ;;;;
  50.      or &&&& (OOOOSSSS////2222 only).  Of these four symbols, ;;;; and &&&& have equal
  51.      precedence,  which  is  lower precedence than that of &&&&&&&& and
  52.      ||||||||.  The symbols &&&&&&&& and |||||||| also have  equal  precedence.   A
  53.      semicolon  (;;;;)  causes sequential execution of the preceding
  54.      pipeline; an ampersand (&&&&) causes asynchronous execution  of
  55.      the  preceding  pipeline  (i.e., the shell does not wait for
  56.      that command to finish.  This option is only available under
  57.      OOOOSSSS////2222  and is restricted to single commands and not pipelines
  58.      because of the differences in  the  UUUUNNNNIIIIXXXX  and  OOOOSSSS////2222  process
  59.      models).  The symbol &&&&&&&& (||||||||) causes the _l_i_s_t following it to
  60.  
  61.  
  62.  
  63. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited                1
  64.  
  65.  
  66.  
  67.  
  68. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  69.  
  70.  
  71.  
  72.      be executed only if the preceding pipeline  returns  a  zero
  73.      (non-zero)  exit  status.   An arbitrary number of new-lines
  74.      may appear in a _l_i_s_t, instead of semicolons, to delimit com-
  75.      mands.
  76.  
  77.      A _c_o_m_m_a_n_d is either a simple-command or one of  the  follow-
  78.      ing.   Unless otherwise stated, the value returned by a com-
  79.      mand is that of the last simple-command executed in the com-
  80.      mand.
  81.  
  82.      ffffoooorrrr _n_a_m_e [ iiiinnnn _w_o_r_d ... ] ddddoooo _l_i_s_t ddddoooonnnneeee
  83.           Each time a ffffoooorrrr command is executed, _n_a_m_e is set to the
  84.           next  _w_o_r_d taken from the iiiinnnn _w_o_r_d list.  If iiiinnnn _w_o_r_d ...
  85.           is omitted, then the ffffoooorrrr command executes the  ddddoooo  _l_i_s_t
  86.           once  for  each  positional  parameter that is set (see
  87.           _P_a_r_a_m_e_t_e_r _S_u_b_s_t_i_t_u_t_i_o_n  below).   Execution  ends  when
  88.           there are no more words in the list.
  89.  
  90.      sssseeeelllleeeecccctttt _n_a_m_e [ iiiinnnn _w_o_r_d ... ] ddddoooo _l_i_s_t ddddoooonnnneeee
  91.           A  sssseeeelllleeeecccctttt  command  prints  on  standard  error   (file
  92.           descriptor  2),  the  set  of _w_o_r_ds, each preceded by a
  93.           number.  If iiiinnnn _w_o_r_d ... is omitted, then the positional
  94.           parameters are used instead (see _P_a_r_a_m_e_t_e_r _S_u_b_s_t_i_t_u_t_i_o_n
  95.           below).  The PPPPSSSS3333 prompt is printed and a line  is  read
  96.           from  the standard input.  If this line consists of the
  97.           number of one of the listed _w_o_r_ds, then  the  value  of
  98.           the  parameter _n_a_m_e is set to the _w_o_r_d corresponding to
  99.           this number.  If this line is empty the selection  list
  100.           is printed again.  Otherwise the value of the parameter
  101.           _n_a_m_e is set to null.  The contents  of  the  line  read
  102.           from  standard  input  is saved in the parameter RRRREEEEPPPPLLLLYYYY.
  103.           The list is executed for each selection until  a  break
  104.           or end-of-file is encountered.
  105.  
  106.      ccccaaaasssseeee _w_o_r_d iiiinnnn [ _p_a_t_t_e_r_n [ | _p_a_t_t_e_r_n ] ... )))) _l_i_s_t ;;;;;;;; ] ... eeeessssaaaacccc
  107.           A  ccccaaaasssseeee  command  executes the _l_i_s_t associated with the
  108.           first _p_a_t_t_e_r_n that matches _w_o_r_d.  The form of the  pat-
  109.           terns is the same as that used for file-name generation
  110.           (see _F_i_l_e _N_a_m_e _G_e_n_e_r_a_t_i_o_n) except that a slash, a lead-
  111.           ing  dot,  or  a dot immediately following a slash need
  112.           not be matched explicitly, and the match is case sensi-
  113.           tive.
  114.  
  115.      iiiiffff _l_i_s_t tttthhhheeeennnn _l_i_s_t [ eeeelllliiiiffff _l_i_s_t tttthhhheeeennnn _l_i_s_t ] ... [ eeeellllsssseeee _l_i_s_t ] ffffiiii
  116.           The  _l_i_s_t following iiiiffff is executed and, if it returns a
  117.           zero exit status, the _l_i_s_t following the first tttthhhheeeennnn  is
  118.           executed.   Otherwise,  the _l_i_s_t following eeeelllliiiiffff is exe-
  119.           cuted and, if its value is zero, the _l_i_s_t following the
  120.           next  tttthhhheeeennnn is executed.  Failing that, the eeeellllsssseeee _l_i_s_t is
  121.           executed.  If no eeeellllsssseeee _l_i_s_t or tttthhhheeeennnn  _l_i_s_t  is  executed,
  122.           then the iiiiffff command returns a zero exit status.
  123.  
  124.  
  125.  
  126.  
  127. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited                2
  128.  
  129.  
  130.  
  131.  
  132. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  133.  
  134.  
  135.  
  136.      wwwwhhhhiiiilllleeee _l_i_s_t ddddoooo _l_i_s_t ddddoooonnnneeee
  137.           A wwwwhhhhiiiilllleeee command repeatedly executes the wwwwhhhhiiiilllleeee _l_i_s_t and,
  138.           if  the  exit status of the last command in the list is
  139.           zero, executes the ddddoooo _l_i_s_t;  otherwise  the  loop  ter-
  140.           minates.   If  no commands in the ddddoooo _l_i_s_t are executed,
  141.           then the wwwwhhhhiiiilllleeee command  returns  a  zero  exit  status;
  142.           uuuunnnnttttiiiillll  may be used in place of wwwwhhhhiiiilllleeee to negate the loop
  143.           termination test.
  144.  
  145.      ((((_l_i_s_t))))
  146.           Execute _l_i_s_t in a sub-shell.  The shell creates  a  new
  147.           environment  in which to execute the _l_i_s_t, but does not
  148.           fork a sub-shell as a Unix system would.  The  original
  149.           environment is restored on completion.
  150.  
  151.      {{{{ _l_i_s_t;;;; }}}}
  152.           _l_i_s_t is simply executed.
  153.  
  154.      [[[[[[[[ _e_x_p_r_e_s_s_i_o_n ]]]]]]]]
  155.           Evaluates expression and returns  a  zero  exit  status
  156.           when  expression  is true.  See CCCCoooonnnnddddiiiittttiiiioooonnnnaaaallll EEEExxxxpppprrrreeeessssssssiiiioooonnnnssss
  157.           below, for a description of expression.  Note  that  [[[[[[[[
  158.           and ]]]]]]]] are keywords and require blanks between them and
  159.           expression.
  160.  
  161.      ffffuuuunnnnccccttttiiiioooonnnn _n_a_m_e  {{{{ _l_i_s_t;;;; }}}}
  162.  
  163.      _n_a_m_e (((()))) {{{{ _l_i_s_t;;;; }}}}
  164.           Define a function which is  referenced  by  _n_a_m_e.   The
  165.           body  of the function is the _l_i_s_t of commands between {{{{
  166.           and }}}}.  Execution of functions is described below  (see
  167.           _E_x_e_c_u_t_i_o_n).
  168.  
  169.      The following words are only recognized as the first word of
  170.      a command and when not quoted:
  171.  
  172.      iiiiffff tttthhhheeeennnn eeeellllsssseeee eeeelllliiiiffff ffffiiii ccccaaaasssseeee eeeessssaaaacccc ffffoooorrrr wwwwhhhhiiiilllleeee uuuunnnnttttiiiillll ddddoooo ddddoooonnnneeee  {{{{  }}}}
  173.      [[[[[[[[ ]]]]]]]]
  174.  
  175.   CCCCoooommmmmmmmeeeennnnttttssss
  176.      A word beginning with #### causes that word and all the follow-
  177.      ing characters up to a new-line to be ignored.
  178.  
  179.   AAAAlllliiiiaaaassssiiiinnnngggg
  180.      The first word of each command is replaced by the text of an
  181.      alias if an alias for this word has been defined.  The alias
  182.      name must a valid identifier.  The  replacement  string  can
  183.      contain  any valid Shell script including the metacharacters
  184.      listed above.   The  first  word  of  each  command  of  the
  185.      replaced text will not be tested for additional aliases.  If
  186.      the last character of the alias value is a  blank  then  the
  187.      word  following  the  alias  will  also be checked for alias
  188.  
  189.  
  190.  
  191. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited                3
  192.  
  193.  
  194.  
  195.  
  196. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  197.  
  198.  
  199.  
  200.      substitution.  Aliases can be used to redefine special buil-
  201.      tin  commands  but  cannot  be used to redefine the keywords
  202.      listed above.  Aliases can be created and  listed  with  the
  203.      aaaalllliiiiaaaassss command and can be removed with the uuuunnnnaaaalllliiiiaaaassss command.
  204.  
  205.      Aliasing is performed when scripts are read, not while  they
  206.      are  executed.   Therefore,  for an alias to take effect the
  207.      alias command has to be executed before  the  command  which
  208.      references the alias is read.
  209.  
  210.      Aliases are frequently used as a short hand  for  full  path
  211.      names.   An option to the aliasing facility allows the value
  212.      of the alias to be automatically set to the full pathname of
  213.      the corresponding command.  These aliases are called tracked
  214.      aliases.  The value of a tracked alias is defined the  first
  215.      time  the  corresponding  command  is  looked up and becomes
  216.      undefined each time  the  PATH  variable  is  reset.   These
  217.      aliases remain tracked so that the next subsequent reference
  218.      will redefine the value.
  219.  
  220.   CCCCoooonnnnddddiiiittttiiiioooonnnnaaaallll EEEExxxxpppprrrreeeessssssssiiiioooonnnnssss
  221.      A conditional expression is used with the [[[[[[[[  compound  com-
  222.      mand  to  test  attributes  of files and to compare strings.
  223.      Word splitting and file name generation are not performed on
  224.      the  words  between  [[[[[[[[ and ]]]]]]]].  Each expression can be con-
  225.      structed from one or more of the following unary  or  binary
  226.      expressions:
  227.  
  228.           ----aaaa _f_i_l_e     True if _f_i_l_e exists.
  229.  
  230.           ----bbbb _f_i_l_e     True if _f_i_l_e exists and is a block  special
  231.                       file.
  232.  
  233.           ----cccc _f_i_l_e     True if _f_i_l_e exists and is a character spe-
  234.                       cial file.
  235.  
  236.           ----dddd _f_i_l_e     True if _f_i_l_e exists and is a directory.
  237.  
  238.           ----ffff _f_i_l_e     True if _f_i_l_e exists and is a regular file.
  239.  
  240.           ----gggg _f_i_l_e     True if _f_i_l_e exists and has its setgid  bit
  241.                       set.
  242.  
  243.           ----hhhh _f_i_l_e     True if _f_i_l_e exists and is a symbolic link.
  244.  
  245.           ----kkkk _f_i_l_e     True if _f_i_l_e exists and has its sticky  bit
  246.                       set.   Under MMMMSSSSDDDDOOOOSSSS and OOOOSSSS////2222, the sticky bit
  247.                       is equivalent to the ARCHIVED attribute.
  248.  
  249.           ----nnnn _s_t_r_i_n_g   True if the length of _s_t_r_i_n_g is non-zero.
  250.  
  251.           ----oooo _o_p_t_i_o_n   True if the _o_p_t_i_o_n named is on.
  252.  
  253.  
  254.  
  255. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited                4
  256.  
  257.  
  258.  
  259.  
  260. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  261.  
  262.  
  263.  
  264.           ----pppp _f_i_l_e     True if _f_i_l_e exists and is a  fifo  special
  265.                       file or a pipe.
  266.  
  267.           ----rrrr _f_i_l_e     True if _f_i_l_e exists and is readable.
  268.  
  269.           ----ssss _f_i_l_e     True if _f_i_l_e exists and has a size  greater
  270.                       than zero.
  271.  
  272.           ----tttt [ _f_i_l_d_e_s ]
  273.                       True if the open file whose file descriptor
  274.                       number  is _f_i_l_d_e_s (1 by default) is associ-
  275.                       ated with a terminal device.
  276.  
  277.           ----uuuu _f_i_l_e     True if _f_i_l_e exists and has its setuid  bit
  278.                       set.
  279.  
  280.           ----wwww _f_i_l_e     True if _f_i_l_e exists and is writable.
  281.  
  282.           ----xxxx _f_i_l_e     True if _f_i_l_e exists and is executable.   If
  283.                       _f_i_l_e  exists  and  is a directory, then the
  284.                       current process has permission to search in
  285.                       the directory.
  286.  
  287.           ----zzzz _s_t_r_i_n_g   True if the length of _s_t_r_i_n_g is zero.
  288.  
  289.           ----LLLL _f_i_l_e     True if _f_i_l_e exists and is a symbolic link.
  290.  
  291.           ----OOOO _f_i_l_e     True if _f_i_l_e exists and  is  owned  by  the
  292.                       effective  user  id of this process.  Under
  293.                       MMMMSSSSDDDDOOOOSSSS and OOOOSSSS////2222, the UID bit  is  equivalent
  294.                       to the HIDDEN attribute.
  295.  
  296.           ----GGGG _f_i_l_e     True if _f_i_l_e exists and  is  owned  by  the
  297.                       effective   user  group  of  this  process.
  298.                       Under  MMMMSSSSDDDDOOOOSSSS  and  OOOOSSSS////2222,  the  GID  bit  is
  299.                       equivalent to the SYSTEM attribute.
  300.  
  301.           ----SSSS _f_i_l_e     True if _f_i_l_e exists and is a socket.
  302.  
  303.           _f_i_l_e_1 ----nnnntttt _f_i_l_e_2
  304.                       True if file1 is newer than file2.  True if
  305.                       _f_i_l_e_1 exists and is newer than _f_i_l_e_2.
  306.  
  307.           _f_i_l_e_1 ----ooootttt _f_i_l_e_2
  308.                       True if _f_i_l_e_1  exists  and  is  older  than
  309.                       _f_i_l_e_2.
  310.  
  311.           _f_i_l_e_1 ----eeeeffff _f_i_l_e_2
  312.                       True if _f_i_l_e_1 and _f_i_l_e_2 and  refer  to  the
  313.                       same  file.   Under  MMMMSSSSDDDDOOOOSSSS  and OOOOSSSS////2222, inode
  314.                       information is not available, and the shell
  315.                       compares the absolute filenames.
  316.  
  317.  
  318.  
  319. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited                5
  320.  
  321.  
  322.  
  323.  
  324. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  325.  
  326.  
  327.  
  328.           _s_1 ==== _s_2     True if strings _s_1 and _s_2 are identical.
  329.  
  330.           _s_1 !!!!==== _s_2    True if strings _s_1 and _s_2 are  _n_o_t  identi-
  331.                       cal.
  332.  
  333.           _s_1 <<<< _s_2     True if string _s_1 comes before _s_2 are based
  334.                       on the ASCII value of their characters.
  335.  
  336.           _s_1 >>>> _s_2     True if string _s_1 comes after _s_2 are  based
  337.                       on the ASCII value of their characters.
  338.  
  339.           _n_1 ----eeeeqqqq _n_2   True if _n_1 is equal to _n_2.
  340.  
  341.           _n_1 ----nnnneeee _n_2   True if _n_1 is not equal to _n_2.
  342.  
  343.           _n_1 ----lllltttt _n_2   True if _n_1 is less than to _n_2.
  344.  
  345.           _n_1 ----ggggtttt _n_2   True if _n_1 is greater than to _n_2.
  346.  
  347.           _n_1 ----lllleeee _n_2   True if _n_1 is less than or equal to _n_2.
  348.  
  349.           _n_1 ----ggggeeee _n_2   True if _n_1 is greater than or equal to _n_2.
  350.  
  351.      Not all of the above have meaning under MMMMSSSSDDDDOOOOSSSS or  OOOOSSSS////2222.   In
  352.      such  cases, the appropriate value is set (_f_a_l_s_e, except for
  353.      ----OOOO and ----GGGG).
  354.  
  355.      A compound expression can be constructed from  these  primi-
  356.      tives  by  using  any of the following, listed in decreasing
  357.      order of precedence.
  358.  
  359.                  (((( _e_x_p_r ))))
  360.                       True, if  _e_x_p_r  is  true.   Used  to  group
  361.                       expressions.
  362.  
  363.                  !!!! _e_x_p_r
  364.                       True, if _e_x_p_r is false.
  365.  
  366.                  _e_x_p_r_1 &&&&&&&& _e_x_p_r_2
  367.                       True, if _e_x_p_r_1 and _e_x_p_r_2 are both true.
  368.  
  369.                  _e_x_p_r_1 |||||||| _e_x_p_r_2
  370.                       True, if _e_x_p_r_1 or _e_x_p_r_2 is true.
  371.  
  372.   TTTTiiiillllddddeeee SSSSuuuubbbbssssttttiiiittttuuuuttttiiiioooonnnn
  373.      Each word is checked to see if it begins with an unquoted ~~~~.
  374.      If it is, the ~~~~ is replaced by the value of the HHHHOOOOMMMMEEEE parame-
  375.      ter. A ~~~~ followed by a ++++ or ---- is replaced by  the  value  of
  376.      the parameter PPPPWWWWDDDD and OOOOLLLLDDDDPPPPWWWWDDDD respectively.
  377.  
  378.   CCCCoooommmmmmmmaaaannnndddd SSSSuuuubbbbssssttttiiiittttuuuuttttiiiioooonnnn
  379.      The standard output from a command enclosed  in  parenthesis
  380.  
  381.  
  382.  
  383. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited                6
  384.  
  385.  
  386.  
  387.  
  388. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  389.  
  390.  
  391.  
  392.      preceded  by  a  dollar  sign  ($$$$(((())))),  or in a pair of grave
  393.      accents (````````) may be used as part or all of a word;  trailing
  394.      new-lines are removed.  The command substitution $$$$((((ccccaaaatttt _f_i_l_e))))
  395.      can be replaced by the equivalent but faster $$$$((((<<<<_f_i_l_e)))).
  396.  
  397.   PPPPaaaarrrraaaammmmeeeetttteeeerrrr SSSSuuuubbbbssssttttiiiittttuuuuttttiiiioooonnnn
  398.      The character $$$$ is used to introduce  substitutable  _p_a_r_a_m_e_-
  399.      _t_e_r_s.   There  are  two  types of parameters, positional and
  400.      keyword.  If _p_a_r_a_m_e_t_e_r is a digit, it is a positional param-
  401.      eter.   Positional parameters may be assigned values by sssseeeetttt.
  402.      Keyword parameters (also known as variables) may be assigned
  403.      values by writing:
  404.  
  405.           _n_a_m_e = _v_a_l_u_e [ _n_a_m_e = _v_a_l_u_e ] ...
  406.  
  407.      Pattern-matching is not performed on _v_a_l_u_e.  There cannot be
  408.      a function and a variable with the same _n_a_m_e.
  409.  
  410.      Alternatively, named parameters can be assigned  values  and
  411.      attributes by using the typeset special command.
  412.  
  413.      $$$${{{{_p_a_r_a_m_e_t_e_r}}}}
  414.           The value, if any, of  the  _p_a_r_a_m_e_t_e_r  is  substituted.
  415.           The braces are required only when _p_a_r_a_m_e_t_e_r is followed
  416.           by a letter, digit, or underscore that  is  not  to  be
  417.           interpreted  as part of its name.  If _p_a_r_a_m_e_t_e_r is **** or
  418.           @@@@, all the positional parameters, starting with $$$$1111, are
  419.           substituted (separated by spaces).  Parameter $$$$0000 is set
  420.           from argument zero when the shell is invoked.
  421.  
  422.      $$$${{{{####_p_a_r_a_m_e_t_e_r}}}}
  423.           If _p_a_r_a_m_e_t_e_r is **** or @@@@, the number of positional param-
  424.           eters  is  substituted.   Otherwise,  the length of the
  425.           value of the _p_a_r_a_m_e_t_e_r is substituted.
  426.  
  427.      $$$${{{{_p_a_r_a_m_e_t_e_r::::----_w_o_r_d}}}}
  428.           If _p_a_r_a_m_e_t_e_r is set and  is  non-null,  substitute  its
  429.           value; otherwise substitute _w_o_r_d.
  430.  
  431.      $$$${{{{_p_a_r_a_m_e_t_e_r::::====_w_o_r_d}}}}
  432.           If _p_a_r_a_m_e_t_e_r is not set or is null set it to _w_o_r_d;  the
  433.           value  of  the  parameter  is  substituted.  Positional
  434.           parameters may not be assigned to in this way.
  435.  
  436.      $$$${{{{_p_a_r_a_m_e_t_e_r::::????_w_o_r_d}}}}
  437.           If _p_a_r_a_m_e_t_e_r is set and  is  non-null,  substitute  its
  438.           value;  otherwise,  print _w_o_r_d and exit from the shell.
  439.           If _w_o_r_d is omitted, the message ``parameter null or not
  440.           set'' is printed.
  441.  
  442.      $$$${{{{_p_a_r_a_m_e_t_e_r::::++++_w_o_r_d}}}}
  443.           If _p_a_r_a_m_e_t_e_r is set and is non-null,  substitute  _w_o_r_d;
  444.  
  445.  
  446.  
  447. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited                7
  448.  
  449.  
  450.  
  451.  
  452. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  453.  
  454.  
  455.  
  456.           otherwise substitute nothing.
  457.  
  458.      $$$${{{{_p_a_r_a_m_e_t_e_r####_p_a_t_t_e_r_n}}}}
  459.      $$$${{{{_p_a_r_a_m_e_t_e_r########_p_a_t_t_e_r_n}}}}
  460.           If the Shell _p_a_t_t_e_r_n matches the beginning of the value
  461.           of  _p_a_r_a_m_e_t_e_r,  then  the value of this substitution is
  462.           the value of the _p_a_r_a_m_e_t_e_r  with  the  matched  portion
  463.           deleted;  otherwise the value of this _p_a_r_a_m_e_t_e_r is sub-
  464.           stituted.  In the first form the smallest matching _p_a_t_-
  465.           _t_e_r_n  is  deleted  and  in  the latter form the largest
  466.           matching _p_a_t_t_e_r_n is deleted.
  467.  
  468.      $$$${{{{_p_a_r_a_m_e_t_e_r%%%%_p_a_t_t_e_r_n}}}}
  469.      $$$${{{{_p_a_r_a_m_e_t_e_r%%%%%%%%_p_a_t_t_e_r_n}}}}
  470.           If the Shell _p_a_t_t_e_r_n matches the end of  the  value  of
  471.           _p_a_r_a_m_e_t_e_r,  then  the value of this substitution is the
  472.           value  of  the  _p_a_r_a_m_e_t_e_r  with  the  matched   portion
  473.           deleted;  otherwise the value of this _p_a_r_a_m_e_t_e_r is sub-
  474.           stituted.  In the first form the smallest matching _p_a_t_-
  475.           _t_e_r_n  is  deleted  and  in  the latter form the largest
  476.           matching _p_a_t_t_e_r_n is deleted.
  477.  
  478.      In the above, _w_o_r_d is not evaluated unless it is to be  used
  479.      as  the  substituted string, so that, in the following exam-
  480.      ple, ppppwwwwdddd is executed only if dddd is not set or is null:
  481.  
  482.           echo ${d:-`pwd`}
  483.  
  484.      If the colon (::::) is omitted from the above expressions,  the
  485.      shell only checks whether _p_a_r_a_m_e_t_e_r is set or not (_I_t _i_s _n_o_t
  486.      _c_l_e_a_r _w_h_a_t _t_h_i_s _m_e_a_n_s).
  487.  
  488.      The following parameters are automatically set by the shell:
  489.  
  490.           ####    The number of positional parameters in decimal.
  491.  
  492.           ----    Flags supplied to the shell on  invocation  or  by
  493.                the sssseeeetttt command.
  494.  
  495.           ????    The decimal value returned by  the  last  synchro-
  496.                nously executed command.
  497.  
  498.           $$$$    The process number of this shell.
  499.  
  500.           !!!!    The process number of the last background  command
  501.                invoked.
  502.  
  503.           ____    The last argument of the previous command.
  504.  
  505.           ~~~~    The shell reserves all variables beginning with  a
  506.                ~~~~  for  its  own  internal use and these variables
  507.                cannot be accessed by the user.
  508.  
  509.  
  510.  
  511. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited                8
  512.  
  513.  
  514.  
  515.  
  516. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  517.  
  518.  
  519.  
  520.      The following parameters are used by the shell:
  521.  
  522.           CCCCDDDDPPPPAAAATTTTHHHH
  523.                The search path for the _c_d  command.   (Note  that
  524.                because  a  colon  is  used by MMMMSSSSDDDDOOOOSSSS to indicate a
  525.                drive, a semi-colon is used to separate  the  path
  526.                names  instead  of a colon - this implies that the
  527.                CDPATH variable must be set using single or double
  528.                quotes to surround the value).
  529.  
  530.           CCCCOOOOLLLLUUUUMMMMNNNNSSSS
  531.                This variable is contains the number of columns on
  532.                the screen.
  533.  
  534.           CCCCOOOOMMMMSSSSPPPPEEEECCCC
  535.                When the shell has to process  an  MMMMSSSSDDDDOOOOSSSS  ._b_a_t  or
  536.                OOOOSSSS////2222  ._c_m_d  file, it expects the file indicated by
  537.                the value of this environment variable  to  be  an
  538.                executable program capable of processing the MMMMSSSSDDDDOOOOSSSS
  539.                ._b_a_t or OOOOSSSS////2222 ._c_m_d file.  The  program  is  invoked
  540.                with  the  arguments  ////cccc  ffffiiiilllleeee____nnnnaaaammmmeeee.   CCCCOOOOMMMMSSSSPPPPEEEECCCC  is
  541.                parsed and split on white space to allow  addition
  542.                parameters  to  be  passed  to  command processor.
  543.                Thus the default environment size could be set  to
  544.                1000 by setting to _c_o_m_m_a_n_d /_e:_1_0_0_0.
  545.  
  546.           EEEEDDDDIIIITTTTOOOORRRR
  547.                If the value of this variable ends in emacs or vi,
  548.                and  the  VVVVIIIISSSSUUUUAAAALLLL  variable  is  not  set, then the
  549.                corresponding option is turned on.
  550.  
  551.           EEEENNNNVVVV  If this parameter is set, then parameter substitu-
  552.                tion  is  performed  on  the value to generate the
  553.                pathname of the script that will be executed  when
  554.                the shell is invoked (See Invocation below).  This
  555.                file is typically  used  for  alias  and  function
  556.                definitions.
  557.  
  558.           EEEEXXXXTTTTEEEENNNNDDDDEEEEDDDD____LLLLIIIINNNNEEEE
  559.                This parameter pointers to a file  which  contains
  560.                information  for the shell about how command lines
  561.                are to be built for particular  external  programs
  562.                and  how to convert from the format entered to the
  563.                shell (see _C_o_m_m_a_n_d _L_i_n_e _B_u_i_l_d_i_n_g).
  564.  
  565.           FFFFCCCCEEEEDDDDIIIITTTT
  566.                The default editor name for the fc command.
  567.  
  568.           HHHHIIIISSSSTTTTFFFFIIIILLLLEEEE
  569.                The file where command  history  is  saved  across
  570.                login    sessions.     The    default   value   is
  571.                $$$$HHHHOOOOMMMMEEEE////hhhhiiiissssttttoooorrrryyyy....sssshhhh.
  572.  
  573.  
  574.  
  575. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited                9
  576.  
  577.  
  578.  
  579.  
  580. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  581.  
  582.  
  583.  
  584.           HHHHIIIISSSSTTTTSSSSIIIIZZZZEEEE
  585.                The number of commands normally  stored  for  his-
  586.                tory, default 100.
  587.  
  588.           HHHHOOOOMMMMEEEE The default argument (home directory) for  the  _c_d
  589.                command.
  590.  
  591.           IIIIFFFFSSSS  Internal field separators,  normally  ssssppppaaaacccceeee,  ttttaaaabbbb,
  592.                and nnnneeeewwww----lllliiiinnnneeee.
  593.  
  594.           LLLLIIIINNNNEEEENNNNOOOO
  595.                This variable contains the current line number  in
  596.                the script being processed.
  597.  
  598.           LLLLIIIINNNNEEEESSSS
  599.                This variable contains the number of lines on  the
  600.                screen.
  601.  
  602.           MMMMAAAAIIIILLLL If this parameter is set to the  name  of  a  mail
  603.                file  _a_n_d  the  MMMMAAAAIIIILLLLPPPPAAAATTTTHHHH parameter is not set, the
  604.                shell informs the user of the arrival of  mail  in
  605.                the specified file.
  606.  
  607.           MMMMAAAAIIIILLLLCCCCHHHHEEEECCCCKKKK
  608.                This parameter specifies how  often  (in  seconds)
  609.                the  shell  will  check for the arrival of mail in
  610.                the files specified by the MMMMAAAAIIIILLLLPPPPAAAATTTTHHHH or MMMMAAAAIIIILLLL param-
  611.                eters.   If  set to 0, the shell will check before
  612.                each prompt.
  613.  
  614.           MMMMAAAAIIIILLLLPPPPAAAATTTTHHHH
  615.                A semi-colon (;;;;) separated list of file names.  If
  616.                this  parameter is set, the shell informs the user
  617.                of the arrival of mail in  any  of  the  specified
  618.                files.  Each  file name can be followed by %%%% and a
  619.                message that will be printed when the modification
  620.                time  changes.   The  default message is "_y_o_u _h_a_v_e
  621.                _m_a_i_l".
  622.  
  623.           OOOOLLLLDDDDPPPPWWWWDDDD
  624.                The previous working directory set by the ccccdddd  com-
  625.                mand.
  626.  
  627.           OOOOPPPPTTTTAAAARRRRGGGG
  628.                The value of the last option argument processed by
  629.                the ggggeeeettttooooppppttttssss special command.
  630.  
  631.           OOOOPPPPTTTTIIIINNNNDDDD
  632.                The index of the last option argument processed by
  633.                the ggggeeeettttooooppppttttssss special command.
  634.  
  635.           OOOOSSSSMMMMOOOODDDDEEEE
  636.  
  637.  
  638.  
  639. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               10
  640.  
  641.  
  642.  
  643.  
  644. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  645.  
  646.  
  647.  
  648.                The operating system under which the shell is run-
  649.                ning (0 - MMMMSSSSDDDDOOOOSSSS, 1 - OOOOSSSS////2222).
  650.  
  651.           PPPPAAAATTTTHHHH The  search  path  for  commands  (see   _E_x_e_c_u_t_i_o_n
  652.                below).  The user may not change PPPPAAAATTTTHHHH if executing
  653.                under _r_s_h.  (Note that because a colon is used  by
  654.                MMMMSSSSDDDDOOOOSSSS to indicate a drive, a semi-colon is used to
  655.                separate the path names instead of a colon -  this
  656.                implies  that  the PATH variable must be set using
  657.                single or double quotes to  surround  the  value).
  658.                The  Shell automatically converts Unix format PPPPAAAATTTTHHHH
  659.                assignments to MMMMSSSSDDDDOOOOSSSS format when  appropriate.   A
  660.                assignment  is  converted  if  there  are no semi-
  661.                colons, no \\\\s and one or more colons.  If there is
  662.                only  one colon, it must not be the second charac-
  663.                ter of the new value.
  664.  
  665.           PPPPWWWWDDDD  The present working directory set by the  ccccdddd  com-
  666.                mand.
  667.  
  668.           PPPPSSSS1111  Primary prompt string, by default ``$$$$ ''.
  669.  
  670.           PPPPSSSS2222  Secondary prompt string, by default ``>>>> ''.
  671.  
  672.           PPPPSSSS3333  Selection prompt string used within a select loop,
  673.                ``####???? ''.
  674.  
  675.           PPPPSSSS4444  The value of this parameter is expanded for param-
  676.                eter  substitution  and  precedes  each line of an
  677.                execution trace.  If omitted, the execution  trace
  678.                prompt is ``+ ''.
  679.  
  680.           RRRRAAAANNNNDDDDOOOOMMMM
  681.                Each time this parameter is referenced,  a  random
  682.                integer  is  generated.   The  sequence  of random
  683.                numbers can be initialized by assigning a  numeric
  684.                value to RRRRAAAANNNNDDDDOOOOMMMM.
  685.  
  686.           RRRREEEEPPPPLLLLYYYY
  687.                This parameter is set by the sssseeeelllleeeecccctttt statement  and
  688.                by  the rrrreeeeaaaadddd special command when no arguments are
  689.                supplied.
  690.  
  691.           SSSSEEEECCCCOOOONNNNDDDDSSSS
  692.                Each time this parameter is referenced, the number
  693.                of seconds since shell invocation is returned.  If
  694.                this parameter is assigned a value, then the value
  695.                returned upon reference will be the value that was
  696.                assigned plus the  number  of  seconds  since  the
  697.                assignment.
  698.  
  699.           SSSSHHHHEEEELLLLLLLL
  700.  
  701.  
  702.  
  703. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               11
  704.  
  705.  
  706.  
  707.  
  708. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  709.  
  710.  
  711.  
  712.                When the shell is invoked, it scans  the  environ-
  713.                ment (see _E_n_v_i_r_o_n_m_e_n_t below) for this name.  If it
  714.                is found and there is an 'r' in the file name part
  715.                of  its  value,  the  shell  becomes  a restricted
  716.                shell.  The  shell  also  uses  this  variable  to
  717.                decide  which  program to spawn to interpret shell
  718.                scripts (see _E_x_e_c_u_t_i_o_n below).
  719.  
  720.           SSSSHHHHMMMMOOOODDDDEEEE
  721.                The compilation mode of shell - 16 or 32 bit.
  722.  
  723.           VVVVIIIISSSSUUUUAAAALLLL
  724.                If the value of this variable ends in emacs or vi,
  725.                then the corresponding option is turned on.
  726.  
  727.           TTTTMMMMPPPP  The location of temporary  files  created  by  the
  728.                shell.  If this variable is not defined, the Shell
  729.                uses  the  HHHHOOOOMMMMEEEE  directory  for  temporary  files.
  730.                Failing  that,  the  root directory of the current
  731.                drive is used.
  732.  
  733.           WWWWIIIINNNNTTTTIIIITTTTLLLLEEEE
  734.                Under OOOOSSSS////2222, the name of the shell's window.
  735.  
  736.      The shell gives default values to  PPPPAAAATTTTHHHH,  PPPPSSSS1111,  PPPPSSSS2222,  SSSSHHHHEEEELLLLLLLL,
  737.      HHHHOOOOMMMMEEEE and IIIIFFFFSSSS.
  738.  
  739.   AAAAlllltttteeeerrrrnnnnaaaattttiiiioooonnnn
  740.      The ccccsssshhhh provides  a  filename  expandsion  method  known  as
  741.      alternation.  This  has  been added into this version of the
  742.      ksh.  When performing filename substitution, you can get the
  743.      shell  to  create  a  set  of strings for you.  For example:
  744.      _e_x_a_m_p_l{_a,_b,_c,_d,_e} will expand  to  _e_x_a_m_p_l_a  _e_x_a_m_p_l_b  _e_x_a_m_p_l_c
  745.      _e_x_a_m_p_l_d _e_x_a_m_p_l_e.  A common separated set of strings in curly
  746.      braces will be expanded into  a  set  of  strings  that  are
  747.      passed  into  the command.  The strings are not sorted.  The
  748.      set of strings may contain parameter substitutions.
  749.  
  750.   AAAArrrriiiitttthhhhmmmmeeeettttiiiicccc EEEExxxxppppaaaannnnssssiiiioooonnnn
  751.      A string of the form $$$$((((((((_e_x_p)))))))) is substitued with  the  value
  752.      of  the  arithemtic expression _e_x_p.  _e_x_p is treated as if it
  753.      were within single quotes.  See AAAArrrriiiitttthhhhmmmmeeeettttiiiicccc EEEEvvvvaaaalllluuuuaaaattttiiiioooonnnn below.
  754.  
  755.   BBBBllllaaaannnnkkkk IIIInnnntttteeeerrrrpppprrrreeeettttaaaattttiiiioooonnnn
  756.      After parameter and command  substitution,  the  results  of
  757.      substitution  are scanned for internal field separator char-
  758.      acters (those found in IIIIFFFFSSSS) and split  into  distinct  argu-
  759.      ments  where such characters are found.  Explicit null argu-
  760.      ments ("""""""" or '''''''')  are  retained.   Implicit  null  arguments
  761.      (those  resulting  from  _p_a_r_a_m_e_t_e_r_s that have no values) are
  762.      removed.
  763.  
  764.  
  765.  
  766.  
  767. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               12
  768.  
  769.  
  770.  
  771.  
  772. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  773.  
  774.  
  775.  
  776.   FFFFiiiilllleeee NNNNaaaammmmeeee GGGGeeeennnneeeerrrraaaattttiiiioooonnnn
  777.      Following substitution, each command _w_o_r_d is scanned for the
  778.      characters  ****,  ???? and [[[[.  If one of these characters appears
  779.      the word is regarded as a _p_a_t_t_e_r_n.   The  word  is  replaced
  780.      with  alphabetically  sorted  file names that match the pat-
  781.      tern.  If no file name is found that  matches  the  pattern,
  782.      the word is left unchanged.  The character .... at the start of
  783.      a file name or immediately following a ////,  as  well  as  the
  784.      character //// itself, must be matched explicitly.  When match-
  785.      ing patterns for file names, the shell ignores the  case  of
  786.      the  pattern and the file directory entries.  Generated file
  787.      names are always in  lower  case  (for  FAT  file  systems).
  788.      Under HPFS on OOOOSSSS////2222, case is preserved.
  789.  
  790.           ****    Matches any string, including the null string.
  791.  
  792.           ????    Matches any single character.
  793.  
  794.           [[[[ ............ ]]]]
  795.                Matches any one of  the  enclosed  characters.   A
  796.                pair  of  characters  separated  by  ---- matches any
  797.                character lexically between the  pair,  inclusive.
  798.                If the first character following the opening ``[''
  799.                is a ````````!!!!'''''''' any character not enclosed is matched.
  800.  
  801.      If the shell has to open or  create  the  file  ////ddddeeeevvvv////ttttttttyyyy  or
  802.      ////ddddeeeevvvv////nnnnuuuullllllll (which are Unix special files), they are converted
  803.      to the equivalent MMMMSSSSDDDDOOOOSSSS file names  (////ddddeeeevvvv////ccccoooonnnn  and  ////ddddeeeevvvv////nnnnuuuullll
  804.      respectively).    Any   user  programs  which  could  expect
  805.      ////ddddeeeevvvv////ttttttttyyyy or ////ddddeeeevvvv////nnnnuuuullllllll as arguments must do its  own  mapping
  806.      to the MMMMSSSSDDDDOOOOSSSS equivalents.
  807.  
  808.      The shell checks for valid FAT filenames (single dot, not at
  809.      the beginning).  Invalid dots are converted to ~~~~.  A warning
  810.      message is displayed if the shell detects  an  invalid  file
  811.      name.
  812.  
  813.   QQQQuuuuoooottttiiiinnnngggg
  814.      The following characters have a special meaning to the shell
  815.      and cause termination of a word unless quoted:
  816.  
  817.           ;;;;  &&&&  ((((  ))))  ||||  ^^^^  <<<<  >>>>  nnnneeeewwww----lllliiiinnnneeee  ssssppppaaaacccceeee  ttttaaaabbbb
  818.  
  819.      A character may be _q_u_o_t_e_d (i.e., made to stand  for  itself)
  820.      by  preceding  it  with a \\\\.  The pair \\\\nnnneeeewwww----lllliiiinnnneeee is ignored.
  821.      All characters enclosed between a pair of single quote marks
  822.      (''''''''),  except  a  single  quote,  are quoted.  Inside double
  823.      quote marks (""""""""), parameter and command substitution  occurs
  824.      and  \\\\  quotes  the  characters  \\\\,  ````,  """",  and  $$$$. """"$$$$****"""" is
  825.      equivalent to """"$$$$1111 $$$$2222 ............"""", whereas  """"$$$$@@@@""""  is  equivalent  to
  826.      """"$$$$1111"""" """"$$$$2222"""" .............
  827.  
  828.  
  829.  
  830.  
  831. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               13
  832.  
  833.  
  834.  
  835.  
  836. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  837.  
  838.  
  839.  
  840.   AAAArrrriiiitttthhhhmmmmeeeettttiiiicccc EEEEvvvvaaaalllluuuuaaaattttiiiioooonnnn
  841.      An ability to perform integer arithmetic  is  provided  with
  842.      the  special  command  lllleeeetttt.  Evaluations are performed using
  843.      _l_o_n_g arithmetic.  Constants are of  the  form  _b_a_s_e#_n  where
  844.      _b_a_s_e   is  a  decimal  number  between  two  and  thirty-six
  845.      representing the arithmetic base and _n is a number  in  that
  846.      base.  If _b_a_s_e# is omitted then base 10 is used.
  847.  
  848.      An arithmetic expression uses nearly the  same  syntax  pre-
  849.      cedence,  and associatively of expression as C.  The follow-
  850.      ing set of operators, listed in  order  of  decreasing  pre-
  851.      cedence, have been implemented:
  852.  
  853.      - + ! ~ ++ --     unary minus/plus, logical  NOT,  comple-
  854.                        ment, {pre, post}{in,de}crement
  855.      &                 Logical AND
  856.      ^                 Logical XOR
  857.      |                 Logical OR
  858.      *  /  %           multiplication, division, remainder
  859.      +  -              addition, subtraction
  860.      << >>             Logical shift left and right
  861.      <=  >=  <  >      comparison
  862.      ==  !=            equality  inequality
  863.      &&                Logical AND
  864.      || ^^             Logical OR, XOR
  865.      ? :               Ternary operator
  866.      = += -=  *=  /=   assignement
  867.      %= &= ^= |= <<=
  868.      >>= &&= ||= ^^=
  869.  
  870.      The operators &&&&&&&&, ||||||||, &&&&&&&&==== and ||||||||==== are  short-circuiting  and
  871.      only one of the latter two expressions in a ternary operator
  872.      is evaluated.  Note the precedence of the logical  AND,  XOR
  873.      and OR operators.
  874.  
  875.      Sub-expressions in parentheses () are  evaluated  first  and
  876.      can be used to override the above precedence rules.
  877.  
  878.      Named parameters can be reference by name within an  expres-
  879.      sion without using the parameter substitution symtax.
  880.  
  881.      Since many of the arithmetic operators require  quoting,  an
  882.      alternative  form  of  the lllleeeetttt command is provided.  For any
  883.      command which begins with a ((((((((, all the characters  until  a
  884.      matching  ))))))))  are treated as a quoted expression.  More pre-
  885.      cisely, ((((((((............))))))))  is equivalent to lllleeeetttt """"............"""".
  886.  
  887.   PPPPrrrroooommmmppppttttiiiinnnngggg
  888.      When used interactively, the shell prompts with the value of
  889.      PPPPSSSS1111  before reading a command.  If at any time a new-line is
  890.      typed and further input is needed to complete a command, the
  891.      secondary prompt (i.e., the value of PPPPSSSS2222) is issued.
  892.  
  893.  
  894.  
  895. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               14
  896.  
  897.  
  898.  
  899.  
  900. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  901.  
  902.  
  903.  
  904.      Many people like to have the shell provide them with  useful
  905.      information in their prompt.  To accommodate this, the shell
  906.      recognises special sequences of characters in the values  of
  907.      PPPPSSSS1111 and PPPPSSSS2222, and substitutes the appropriate information for
  908.      them.  The special sequences and what they signify are:
  909.  
  910.           %%%%dddd   Place the current date, in the form  DAY  DD-MM-YY
  911.                into the prompt.
  912.  
  913.           %%%%eeee   Place the current event number (as defined by  the
  914.                hhhhiiiissssttttoooorrrryyyy  command)  into  the  prompt.   If history
  915.                evaluation has been turned off (via  hhhhiiiissssttttoooorrrryyyy  ----dddd),
  916.                no number will be substituted in (i.e. the %%%%eeee will
  917.                be removed).
  918.  
  919.           %%%%nnnn   Place the current working drive into the prompt.
  920.  
  921.           %%%%pppp   Place  the  current  working  directory  into  the
  922.                prompt.
  923.  
  924.           %%%%tttt   Place the current time of day, in the  form  HH:MM
  925.                into  the prompt.  The time is on a 24 hour clock,
  926.                i.e. 1:30 in the afternoon will be 13:30.
  927.  
  928.           %%%%vvvv   Place the MMMMSSSSDDDDOOOOSSSS version number, in the form  MSDOS
  929.                MM:MM into the prompt.
  930.  
  931.           %%%%%%%%   Place the character % into the prompt.
  932.  
  933.           \\\\xxxxxxxxxxxx Place the character \_x_x_x  into  the  prompt.   The
  934.                processing of escape sequences is the same as that
  935.                for eeeecccchhhhoooo.
  936.  
  937.      Some of these facilities are of more use than others.
  938.  
  939.   IIIInnnnppppuuuutttt////OOOOuuuuttttppppuuuutttt
  940.      Before a command is executed, its input and  output  may  be
  941.      redirected  using  a  special  notation  interpreted  by the
  942.      shell.  The following  may  appear  anywhere  in  a  simple-
  943.      command  or  may  precede  or  follow  a _c_o_m_m_a_n_d and are _n_o_t
  944.      passed on to the invoked command; substitution occurs before
  945.      _w_o_r_d or _d_i_g_i_t is used:
  946.  
  947.      <<<<wwwwoooorrrrdddd         Use file _w_o_r_d as standard input (file descrip-
  948.                    tor 0).
  949.  
  950.      >>>>wwwwoooorrrrdddd         Use  file  _w_o_r_d  as  standard   output   (file
  951.                    descriptor  1).  If the file does not exist it
  952.                    is created; otherwise, it is truncated to zero
  953.                    length.
  954.  
  955.      >>>>>>>>wwwwoooorrrrdddd        Use file _w_o_r_d as standard output.  If the file
  956.  
  957.  
  958.  
  959. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               15
  960.  
  961.  
  962.  
  963.  
  964. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  965.  
  966.  
  967.  
  968.                    exists  output  is  appended  to  it (by first
  969.                    seeking to the  end-of-file);  otherwise,  the
  970.                    file is created.
  971.  
  972.      <<<<<<<<[----]wwwwoooorrrrdddd     The shell input is read up to a line  that  is
  973.                    the  same  as _w_o_r_d, or to an end-of-file.  The
  974.                    resulting document becomes the standard input.
  975.                    If   any  character  of  _w_o_r_d  is  quoted,  no
  976.                    interpretation is placed upon  the  characters
  977.                    of the document; otherwise, parameter and com-
  978.                    mand substitution  occurs,  (unescaped)  \\\\nnnneeeewwww----
  979.                    lllliiiinnnneeee  is  ignored, and \\\\ must be used to quote
  980.                    the characters \\\\, $$$$, ````, and the first  charac-
  981.                    ter  of  _w_o_r_d.   If  ----  is appended to <<<<<<<<, all
  982.                    leading tabs are stripped from _w_o_r_d  and  from
  983.                    the document.
  984.  
  985.      <<<<&&&&ddddiiiiggggiiiitttt       Use the file associated with  file  descriptor
  986.                    _d_i_g_i_t  as  standard  input.  Similarly for the
  987.                    standard output using >>>>&&&&ddddiiiiggggiiiitttt.
  988.  
  989.      <<<<&&&&----           The standard input is closed.   Similarly  for
  990.                    the standard output using >>>>&&&&----.
  991.  
  992.      nnnn<<<<>>>>wwwwoooorrrrdddd       causes the file _w_o_r_d  to  be  opened  on  file
  993.                    descriptor  _n  for  both  reading and writing.
  994.                    The file must already exist.
  995.  
  996.      If any of the  above  is  preceded  by  a  digit,  the  file
  997.      descriptor  which  will  be associated with the file is that
  998.      specified by the digit (instead of the default 0 or 1).  For
  999.      example:
  1000.  
  1001.           ... 2>&1
  1002.  
  1003.      associates file descriptor 2 with the file currently associ-
  1004.      ated with file descriptor 1.
  1005.  
  1006.      The order in which redirections are  specified  is  signifi-
  1007.      cant.   The shell evaluates redirections left-to-right.  For
  1008.      example:
  1009.  
  1010.           ... 1>_x_x_x 2>&1
  1011.  
  1012.      first associates file descriptor 1 with file _x_x_x.  It  asso-
  1013.      ciates  file descriptor 2 with the file associated with file
  1014.      descriptor 1 (i.e. _x_x_x).  If the order of redirections  were
  1015.      reversed,  file  descriptor  2  would be associated with the
  1016.      terminal (assuming file descriptor  1  had  been)  and  file
  1017.      descriptor 1 would be associated with file _x_x_x .
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               16
  1024.  
  1025.  
  1026.  
  1027.  
  1028. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  1029.  
  1030.  
  1031.  
  1032.      The environment for the execution of a command contains  the
  1033.      file  descriptors  of  the  invoking  shell  as  modified by
  1034.      input/output specifications.
  1035.  
  1036.      Redirection of output  is  not  allowed  in  the  restricted
  1037.      shell.
  1038.  
  1039.   EEEEnnnnvvvviiiirrrroooonnnnmmmmeeeennnntttt
  1040.      The _e_n_v_i_r_o_n_m_e_n_t (see _e_n_v_i_r_o_n(5)) is  a  list  of  name-value
  1041.      pairs  that is passed to an executed program in the same way
  1042.      as a normal argument list.  The  shell  interacts  with  the
  1043.      environment in several ways.  On invocation, the shell scans
  1044.      the environment and creates a parameter for each name found,
  1045.      giving it the corresponding value.  If the user modifies the
  1046.      value of any of these parameters or creates new  parameters,
  1047.      none of these affects the environment unless the eeeexxxxppppoooorrrrtttt com-
  1048.      mand is used to bind the shell's parameter to  the  environ-
  1049.      ment (see also sssseeeetttt ----aaaa).  A parameter may be removed from the
  1050.      environment with the uuuunnnnsssseeeetttt command.  The environment seen by
  1051.      any  executed  command  is  thus  composed of any unmodified
  1052.      name-value pairs originally inherited by  the  shell,  minus
  1053.      any  pairs removed by uuuunnnnsssseeeetttt, plus any modifications or addi-
  1054.      tions, all of which must be noted in eeeexxxxppppoooorrrrtttt commands.
  1055.  
  1056.      The environment for any _s_i_m_p_l_e-_c_o_m_m_a_n_d may be  augmented  by
  1057.      prefixing  it  with  one  or more assignments to parameters.
  1058.      Thus:
  1059.  
  1060.           TERM=450 cmd args
  1061.  
  1062.      and
  1063.  
  1064.           (export TERM; TERM=450; cmd args)
  1065.  
  1066.      are equivalent (as far as  the  execution  of  _c_m_d  is  con-
  1067.      cerned).
  1068.  
  1069.      If the ----kkkk flag is set, _a_l_l keyword arguments are  placed  in
  1070.      the  environment, even if they occur after the command name.
  1071.      The following first prints aaaa====bbbb cccc and cccc:
  1072.  
  1073.           echo a=b c
  1074.           set -k
  1075.           echo a=b c
  1076.  
  1077.   SSSSiiiiggggnnnnaaaallllssss
  1078.      The INTERRUPT and QUIT signals for an  invoked  command  are
  1079.      ignored  if  the command is followed by &&&&; otherwise signals
  1080.      have the values inherited by the shell from its parent, with
  1081.      the  exception  of  signal 11 (but see also the ttttrrrraaaapppp command
  1082.      below).
  1083.  
  1084.  
  1085.  
  1086.  
  1087. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               17
  1088.  
  1089.  
  1090.  
  1091.  
  1092. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  1093.  
  1094.  
  1095.  
  1096.   CCCCoooommmmmmmmaaaannnndddd RRRReeee----eeeennnnttttrrrryyyy
  1097.      The text  of  the  last  HHHHIIIISSSSTTTTSSSSIIIIZZZZEEEE  (default:  100)  commands
  1098.      entered  from  a terminal device is saved in a _h_i_s_t_o_r_y file.
  1099.      The file $$$$HHHHOOOOMMMMEEEE////hhhhiiiissssttttoooorrrryyyy....sssshhhh is used if the  HHHHIIIISSSSTTTTFFFFIIIILLLLEEEE  variable
  1100.      is  not set.  The special command ffffcccc is used to list or edit
  1101.      a portion of this file.  The  portion  of  the  file  to  be
  1102.      edited  or listed can be selected by number or by giving the
  1103.      first character or characters of the command.  A single com-
  1104.      mand  or  range of commands can be specified.  If you do not
  1105.      specify an editor program as an argument to ffffcccc, the value of
  1106.      the parameter FFFFCCCCEEEEDDDDIIIITTTT is used.  The edited command is printed
  1107.      and re-executed upon leaving the editor.  The editor name  ----
  1108.      is used to skip the editing phase and to re-execute the com-
  1109.      mand.  In this case a substitution  parameter  of  the  form
  1110.      _o_l_d====_n_e_w  can be used to modify the command before execution.
  1111.      For example, if rrrr  is  aliased  to  ````ffffcccc  ----eeee  ----'''',  typing  `rrrr
  1112.      bbbbaaaadddd====ggggoooooooodddd  cccc' re-executes the most recent command that starts
  1113.      with the letter cccc and replaces the first occurrence  of  the
  1114.      string bbbbaaaadddd with the string ggggoooooooodddd.
  1115.  
  1116.   HHHHiiiissssttttoooorrrryyyy
  1117.      When reading input from  an  interactive  terminal  and  vvvviiii,
  1118.      eeeemmmmaaaaccccssss or ggggmmmmaaaaccccssss input editing mode has not been selected (see
  1119.      IIIInnnn----lllliiiinnnneeee EEEEddddiiiittttiiiinnnngggg OOOOppppttttiiiioooonnnnssss), a ``!'' at the  start  of  a  line
  1120.      signals  to  the  shell  that it should attempt to perform a
  1121.      history subsitution.  A history subsitution is a  short-hand
  1122.      method  which  allows  the user to recall a previous command
  1123.      for execution or editing.  The recalled command is placed in
  1124.      the  command  line for editing or passing to the rest of the
  1125.      shell for normal processing.  A history  substitution  takes
  1126.      the form:
  1127.  
  1128.           !!!! [ ! | _s_t_r | _n_u_m ] _t_e_r_m_i_n_a_t_o_r
  1129.  
  1130.      !!!!!!!! will place the previous  command  in  the  command  line.
  1131.      !!!!_n_u_m  will  place  the  history  command  with the specified
  1132.      number in the command line.  !!!!_s_t_r will find the most  recent
  1133.      command line that started with the characters in _s_t_r.
  1134.  
  1135.      The _t_e_r_m_i_n_a_t_o_r determines what action is performed after the
  1136.      history  line  has been found.  If the original history com-
  1137.      mand is entered using the <<<<rrrreeeettttuuuurrrrnnnn>>>> key, the new command line
  1138.      is  passed  directly  to  the  shell.   If  the <<<<eeeennnndddd>>>> key is
  1139.      pressed, the new command line can be edited  in  the  manner
  1140.      described below.
  1141.  
  1142.   CCCCoooommmmmmmmaaaannnndddd LLLLiiiinnnneeee EEEEddddiiiittttiiiinnnngggg
  1143.      When reading input from  an  interactive  terminal,  certain
  1144.      keystrokes  allow  the current input line to be edited.  The
  1145.      following keystrokes corresponding to  the  following  func-
  1146.      tions  are  defined  in the initialisation file sssshhhh....iiiinnnniiii.  The
  1147.      keywords  in  the  initialisation  file  which  provide  the
  1148.  
  1149.  
  1150.  
  1151. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               18
  1152.  
  1153.  
  1154.  
  1155.  
  1156. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  1157.  
  1158.  
  1159.  
  1160.      functions are listed below:
  1161.  
  1162.      RRRRiiiigggghhhhtttt
  1163.           Move the cursor right one character
  1164.  
  1165.      WWWWoooorrrrddddRRRRiiiigggghhhhtttt
  1166.           Move the cursor right one word
  1167.  
  1168.      LLLLeeeefffftttt Move the cursor left one character
  1169.  
  1170.      WWWWoooorrrrddddLLLLeeeefffftttt
  1171.           Move the cursor left one word
  1172.  
  1173.      PPPPrrrreeeevvvviiiioooouuuussss
  1174.           Get the previous command from the history file
  1175.  
  1176.      NNNNeeeexxxxtttt Get the next command from the history file
  1177.  
  1178.      IIIInnnnsssseeeerrrrtttt
  1179.           Toggle insert/overwrite mode (note  the  shape  of  the
  1180.           cursor changes to indicate the current mode)
  1181.  
  1182.      DDDDeeeelllleeeetttteeeeRRRRiiiigggghhhhtttt
  1183.           Delete the current character unless the  cursor  is  at
  1184.           the end of line when no action is taken
  1185.  
  1186.      SSSSttttaaaarrrrtttt
  1187.           Move the cursor to the start of the command
  1188.  
  1189.      CCCCoooommmmpppplllleeeetttteeee
  1190.           Attempt to complete the filename.  The  shell  attempts
  1191.           to  complete  the file name at the current cursor posi-
  1192.           tion.  The file name is delimited by white space  char-
  1193.           acters.   If  the  shell is unable to complete the file
  1194.           name (ie no match  can  be  found  in  the  appropriate
  1195.           directory),  the  bell  is  rung.  If a single match is
  1196.           found, the new file name  is  displayed.   If  multiple
  1197.           matches  are  found,  the  file name is replaced by the
  1198.           longest non-unique part of the file name and  the  bell
  1199.           is rung.
  1200.  
  1201.      EEEEnnnndddd  Move the cursor to the end of the command,  unless  the
  1202.           first  character  of  the command is a !!!!, in which case
  1203.           the appropriate history search is done.  The cursor  is
  1204.           placed at the end of the command line.
  1205.  
  1206.      FFFFlllluuuusssshhhh
  1207.           Delete to the end of the line
  1208.  
  1209.      SSSSccccaaaannnnBBBBaaaacccckkkkwwwwaaaarrrrdddd
  1210.           Search backwards from the current history  command  for
  1211.           the  next match against the last history request or the
  1212.  
  1213.  
  1214.  
  1215. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               19
  1216.  
  1217.  
  1218.  
  1219.  
  1220. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  1221.  
  1222.  
  1223.  
  1224.           string currently in the command line if there has  been
  1225.           no previous history request.
  1226.  
  1227.      SSSSccccaaaannnnFFFFoooorrrreeeewwwwaaaarrrrdddd
  1228.           Search forewards from the current history  command  for
  1229.           the  next match against the last history request or the
  1230.           string currently in the command line if there has  been
  1231.           no previous history request.
  1232.  
  1233.      CCCClllleeeeaaaarrrr
  1234.           Erase the complete line.
  1235.  
  1236.      CCCClllleeeeaaaarrrrSSSSccccrrrreeeeeeeennnn
  1237.           Clears the complete  screen.   This  function  is  only
  1238.           available under OOOOSSSS////2222.
  1239.  
  1240.      DDDDiiiirrrreeeeccccttttoooorrrryyyy
  1241.           Display the  file  name  list  matching  the  partially
  1242.           entered  file name under the cursor.  If no matches are
  1243.           found the bell is rung.  To display  the  whole  direc-
  1244.           tory,  enter  the directory name followed by a slash ////.
  1245.           After the directory listing  has  been  displayed,  the
  1246.           entered command line is redisplayed.
  1247.  
  1248.      DDDDeeeelllleeeetttteeeeLLLLeeeefffftttt
  1249.           Delete the character to the left of the cursor.
  1250.  
  1251.      RRRReeeettttuuuurrrrnnnn
  1252.           Execute the command line, unless the first character of
  1253.           the  command is a !!!!, in which case the appropriate his-
  1254.           tory processing  is  done.   _T_h_i_s  _i_s  _t_h_e  _a_c_t_u_a_l  _k_e_y
  1255.           _p_r_e_s_s_e_d  _a_n_d  _c_a_n_n_o_t  _b_e _m_o_d_i_f_i_e_d _b_y _t_h_e _i_n_i_t_i_a_l_i_s_a_t_i_o_n
  1256.           _f_i_l_e.
  1257.  
  1258.      JJJJoooobbbbssss Print a list of the child processes of the shell.  This
  1259.           function is only available under OOOOSSSS////2222.
  1260.  
  1261.      TTTTrrrraaaannnnssssppppoooosssseeee
  1262.           Transpose the two characters under the cursor.
  1263.  
  1264.      QQQQuuuuooootttteeee
  1265.           Disable any special processing for the next keystroke.
  1266.  
  1267.   IIIInnnn----lllliiiinnnneeee EEEEddddiiiittttiiiinnnngggg OOOOppppttttiiiioooonnnnssss
  1268.      Normally, each command line entered from a  terminal  device
  1269.      is  simply  typed  followed by a new-line (`RETURN' or `LINE
  1270.      FEED'), see previous section.  If the vvvviiii option  is  active,
  1271.      the user can edit the command line.  To be in this edit mode
  1272.      sssseeeetttt the vvvviiii  option.   An  editing  option  is  automatically
  1273.      selected each time the VVVVIIIISSSSUUUUAAAALLLL or EEEEDDDDIIIITTTTOOOORRRR variable is assigned
  1274.      a value ending in either of these option names.
  1275.  
  1276.  
  1277.  
  1278.  
  1279. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               20
  1280.  
  1281.  
  1282.  
  1283.  
  1284. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  1285.  
  1286.  
  1287.  
  1288.      The editing mode implements a  concept  where  the  user  is
  1289.      looking  through  a  window at the current line.  The window
  1290.      width is the value of CCCCOOOOLLLLUUUUMMMMNNNNSSSS if it  is  defined,  otherwise
  1291.      _8_0.   If the line is longer than the window width minus two,
  1292.      a mark is displayed at the end of the window to  notify  the
  1293.      user.  As the cursor moves and reaches the window boundaries
  1294.      the window will be centered about the cursor.  The mark is a
  1295.      >>>>  (<<<<,  ****)  if  the  line  extends on the right (left, both)
  1296.      side(s) of the window.
  1297.  
  1298.      The search commands in each edit mode provide access to  the
  1299.      history  file.   Only  strings  are  matched,  not patterns,
  1300.      although a leading ^^^^ in the string restricts  the  match  to
  1301.      begin at the first character in the line.
  1302.  
  1303.   VVVViiii EEEEddddiiiittttiiiinnnngggg MMMMooooddddeeee
  1304.      There are two typing modes.  Initially,  when  you  enter  a
  1305.      command you are in the input mode.  To edit, the user enters
  1306.      control mode by typing ESC (\\\\000033333333) and moves  the  cursor  to
  1307.      the  point  needing  correction  and then inserts or deletes
  1308.      characters or words as needed.  Most control commands accept
  1309.      an optional repeat count prior to the command.
  1310.  
  1311.      In edit mode, the key mappings defined in the initialisation
  1312.      file are mapped onto the appropriate vvvviiii edit command.
  1313.  
  1314.      IIIInnnnppppuuuutttt EEEEddddiiiitttt CCCCoooommmmmmmmaaaannnnddddssss
  1315.  
  1316.      By default the editor is in input mode.
  1317.  
  1318.           _b_a_c_k_s_p_a_c_e
  1319.                Deletes previous character.
  1320.  
  1321.           CCCCttttrrrrllll----WWWW
  1322.                Deletes the previous blank separated word.
  1323.  
  1324.           CCCCttttrrrrllll----DDDD
  1325.                Terminates the shell.
  1326.  
  1327.           CCCCttttrrrrllll----VVVV
  1328.                Escapes the next  character.   Editing  characters
  1329.                can  be  entered  in a command line or in a search
  1330.                string  if  preceded  by  a  CCCCttttrrrrllll----VVVV.   The  CCCCttttrrrrllll----VVVV
  1331.                removes  the next character's editing features (if
  1332.                any).
  1333.  
  1334.           \\\\    Escapes the next _e_d_i_t_i_n_g character.
  1335.  
  1336.      MMMMoooottttiiiioooonnnn EEEEddddiiiitttt CCCCoooommmmmmmmaaaannnnddddssss
  1337.  
  1338.      These commands move the cursor:
  1339.  
  1340.  
  1341.  
  1342.  
  1343. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               21
  1344.  
  1345.  
  1346.  
  1347.  
  1348. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  1349.  
  1350.  
  1351.  
  1352.           [_C_o_u_n_t]llll
  1353.                Moves the cursor forward (right) one character.
  1354.  
  1355.           [_C_o_u_n_t]wwww
  1356.                Moves the cursor forward one alphanumeric word.
  1357.  
  1358.           [_C_o_u_n_t]WWWW
  1359.                Moves the cursor to the beginning of the next word
  1360.                that follows a blank.
  1361.  
  1362.           [_C_o_u_n_t]eeee
  1363.                Moves the cursor to end of the current word.
  1364.  
  1365.           [_C_o_u_n_t]EEEE
  1366.                Moves the cursor to  end  of  the  current  blank-
  1367.                separated word.
  1368.  
  1369.           [_C_o_u_n_t]hhhh
  1370.                Moves the cursor backward (left) one character.
  1371.  
  1372.           [_C_o_u_n_t]bbbb
  1373.                Moves the cursor backward one word.
  1374.  
  1375.           [_C_o_u_n_t]BBBB
  1376.                Moves the cursor to the  previous  blank-separated
  1377.                word.
  1378.  
  1379.           [_C_o_u_n_t]||||
  1380.                Moves the cursor to the column  specified  by  the
  1381.                _c_o_u_n_t parameter.
  1382.  
  1383.           [_C_o_u_n_t]ffffcccc
  1384.                Finds the next character _c in the current line.
  1385.  
  1386.           [_C_o_u_n_t]FFFFcccc
  1387.                Finds the previous  character  _c  in  the  current
  1388.                line.
  1389.  
  1390.           [_C_o_u_n_t]ttttcccc
  1391.                Equivalent to ffff followed by hhhh.
  1392.  
  1393.           [_C_o_u_n_t]TTTTcccc
  1394.                Equivalent to FFFF followed by llll.
  1395.  
  1396.           [_C_o_u_n_t];;;;
  1397.                Repeats for the number of times specified  by  the
  1398.                _c_o_u_n_t  parameter  the  last  single-character find
  1399.                command: ffff, FFFF, tttt, or TTTT.
  1400.  
  1401.           [_C_o_u_n_t],,,,
  1402.                Reverses the last  single-character  find  command
  1403.                the   number  of  times  specified  by  the  _c_o_u_n_t
  1404.  
  1405.  
  1406.  
  1407. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               22
  1408.  
  1409.  
  1410.  
  1411.  
  1412. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  1413.  
  1414.  
  1415.  
  1416.                parameter.
  1417.  
  1418.           0000    Moves the cursor to start of line.
  1419.  
  1420.           ^^^^    Moves the cursor to first  nonblank  character  in
  1421.                line.
  1422.  
  1423.           $$$$    Moves the cursor to end of line.
  1424.  
  1425.      SSSSeeeeaaaarrrrcccchhhh EEEEddddiiiitttt CCCCoooommmmmmmmaaaannnnddddssss
  1426.  
  1427.      These commands access your command history:
  1428.  
  1429.           [_C_o_u_n_t]kkkk
  1430.                Fetches the previous  command.   Each  time  kkkk  is
  1431.                entered, the previous command is accessed.
  1432.  
  1433.           [_C_o_u_n_t]----
  1434.                Equivalent to kkkk.
  1435.  
  1436.           [_C_o_u_n_t]jjjj
  1437.                Fetches the next command.  Each time jjjj is entered,
  1438.                the next command is accessed.
  1439.  
  1440.           [_C_o_u_n_t]++++
  1441.                Equivalent to jjjj.
  1442.  
  1443.           [_C_o_u_n_t]GGGG
  1444.                Fetches the command whose number is  specified  by
  1445.                the  _c_o_u_n_t  parameter.   The  default is the least
  1446.                recent history command.
  1447.  
  1448.           ////_S_t_r_i_n_g
  1449.                Searches backward through history for  a  previous
  1450.                command  containing  the  specified  _s_t_r_i_n_g.   The
  1451.                _s_t_r_i_n_g is terminated by a RETURN or new-line char-
  1452.                acter.  If the specified string is preceded by a ^^^^
  1453.                (caret), the matched line must begin with  _s_t_r_i_n_g.
  1454.                If  the value of the _s_t_r_i_n_g parameter is null, the
  1455.                previous string is used.
  1456.  
  1457.           ????_S_t_r_i_n_g
  1458.                Same as ////_S_t_r_i_n_g except that the search is  in  the
  1459.                forward direction.
  1460.  
  1461.           nnnn    Searches for the next match of the last pattern to
  1462.                //// or ???? commands.
  1463.  
  1464.           NNNN    Searches for the next match of the last pattern to
  1465.                ////  or  ????  commands, but in the opposite direction.
  1466.                Searches history for the  _s_t_r_i_n_g  entered  by  the
  1467.                previous //// command.
  1468.  
  1469.  
  1470.  
  1471. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               23
  1472.  
  1473.  
  1474.  
  1475.  
  1476. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  1477.  
  1478.  
  1479.  
  1480.      TTTTeeeexxxxtttt MMMMooooddddiiiiffffiiiiccccaaaattttiiiioooonnnn EEEEddddiiiitttt CCCCoooommmmmmmmaaaannnnddddssss
  1481.  
  1482.      These commands modify the line:
  1483.  
  1484.           aaaa    Enters the input mode and enters  text  after  the
  1485.                current character.
  1486.  
  1487.           AAAA    Appends text to the end of the  line.   Equivalent
  1488.                to $$$$aaaa.
  1489.  
  1490.           [_C_o_u_n_t]cccc_M_o_t_i_o_n
  1491.           cccc[_C_o_u_n_t]_M_o_t_i_o_n
  1492.                Deletes the current character through the  charac-
  1493.                ter  to  which  the  _m_o_t_i_o_n parameter specifies to
  1494.                move the cursor, and enters input  mode.   If  the
  1495.                value  of  the  _m_o_t_i_o_n  parameter is cccc, the entire
  1496.                line is deleted and the input mode is entered.
  1497.  
  1498.           CCCC    Deletes the current character through the  end  of
  1499.                the line and enters input mode.  Equivalent to cccc$$$$.
  1500.  
  1501.           SSSS    Equivalent to cccccccc.
  1502.  
  1503.           DDDD    Deletes the current character through the  end  of
  1504.                line.  Equivalent to dddd$$$$.
  1505.  
  1506.           [_C_o_u_n_t]dddd_M_o_t_i_o_n
  1507.           dddd[_C_o_u_n_t]_M_o_t_i_o_n
  1508.                Deletes the current character up to and  including
  1509.                the  character  specified by the _m_o_t_i_o_n parameter.
  1510.                If _m_o_t_i_o_n is dddd, the entire line is deleted.
  1511.  
  1512.           iiii    Enters the input mode and inserts text before  the
  1513.                current character.
  1514.  
  1515.           IIII    Inserts text before the  beginning  of  the  line.
  1516.                Equivalent to 0000iiii.
  1517.  
  1518.           [_C_o_u_n_t]PPPP
  1519.                Places the previous text modification  before  the
  1520.                cursor.
  1521.  
  1522.           [_C_o_u_n_t]pppp
  1523.                Places the previous text  modification  after  the
  1524.                cursor.
  1525.  
  1526.           RRRR    Enters the input mode and types over  the  charac-
  1527.                ters on the screen.
  1528.  
  1529.           [_C_o_u_n_t]rrrr_c
  1530.                Replaces the number of characters specified by the
  1531.                _c_o_u_n_t  parameter,  starting  at the current cursor
  1532.  
  1533.  
  1534.  
  1535. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               24
  1536.  
  1537.  
  1538.  
  1539.  
  1540. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  1541.  
  1542.  
  1543.  
  1544.                position, with the characters specified by  the  _c
  1545.                variable.   Advances  the cursor after the charac-
  1546.                ters are replaced.
  1547.  
  1548.           [_C_o_u_n_t]xxxx
  1549.                Deletes the current character.
  1550.  
  1551.           [_C_o_u_n_t]XXXX
  1552.                Deletes the preceding character.
  1553.  
  1554.           [_C_o_u_n_t]....
  1555.                Repeats the previous text modification command.
  1556.  
  1557.           [_C_o_u_n_t]~~~~
  1558.                Inverts the  case  of  the  number  of  characters
  1559.                specified  by the _c_o_u_n_t parameter, starting at the
  1560.                current cursor position, and advances the cursor.
  1561.  
  1562.           [_C_o_u_n_t]____
  1563.                Causes the word specified by the  _c_o_u_n_t  parameter
  1564.                word  of  the previous command to be appended, and
  1565.                enters input mode.  The last word is used  if  the
  1566.                _c_o_u_n_t parameter is omitted.
  1567.  
  1568.           ****    Appends an **** (asterisk) to the  current  word  and
  1569.                attempts  filename  substitution.   If no match is
  1570.                found, it rings the bell.  Otherwise, the word  is
  1571.                replaced by the matching pattern and input mode is
  1572.                entered.
  1573.  
  1574.           \\\\    File-name completion.  Replaces the  current  word
  1575.                with  the  longest common prefix of all file names
  1576.                matching  the  current  word  with   an   asterisk
  1577.                appended.   If the match is unique, a //// (slash) is
  1578.                appended if the file is a directory and a space is
  1579.                appended if the file is not a directory.
  1580.  
  1581.      OOOOtttthhhheeeerrrr EEEEddddiiiitttt CCCCoooommmmmmmmaaaannnnddddssss
  1582.  
  1583.      Other miscellaneous edit commands include:
  1584.  
  1585.           [_C_o_u_n_t]yyyy_M_o_t_i_o_n
  1586.           yyyy[_C_o_u_n_t]_M_o_t_i_o_n
  1587.                Yanks the current character through the  character
  1588.                to  which  the  _m_o_t_i_o_n parameter specifies to move
  1589.                the cursor and  puts  these  characters  into  the
  1590.                delete buffer.  The text and cursor are unchanged.
  1591.  
  1592.           YYYY    Yanks from the current position to the end of  the
  1593.                line.  Equivalent to yyyy$$$$.
  1594.  
  1595.           uuuu    Undoes the last text-modifying command.
  1596.  
  1597.  
  1598.  
  1599. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               25
  1600.  
  1601.  
  1602.  
  1603.  
  1604. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  1605.  
  1606.  
  1607.  
  1608.           UUUU    Undoes all the text-modifying  commands  performed
  1609.                on the line.
  1610.  
  1611.           [_C_o_u_n_t]vvvv
  1612.                Returns the command ffffcccc ----eeee $$$${{{{VVVVIIIISSSSUUUUAAAALLLL::::----$$$${{{{EEEEDDDDIIIITTTTOOOORRRR::::----vvvviiii}}}}}}}}
  1613.                _c_o_u_n_t in the input buffer.  If the _c_o_u_n_t parameter
  1614.                is omitted, then the current line is used.
  1615.  
  1616.           CCCCttttrrrrllll----LLLL
  1617.                Line-feeds  and  prints  the  current  line.   Has
  1618.                effect only in control mode.
  1619.  
  1620.           CCCCttttrrrrllll----JJJJ
  1621.                (New line) Executes the current  line,  regardless
  1622.                of the mode.
  1623.  
  1624.           CCCCttttrrrrllll----MMMM
  1625.                (Return) Executes the current line, regardless  of
  1626.                the mode.
  1627.  
  1628.           ####    Sends the line after inserting a #### (hash sign)  in
  1629.                front of the line.  Useful for causing the current
  1630.                line to be inserted in the history  without  being
  1631.                executed.
  1632.  
  1633.           ====    Lists the file names that match the  current  word
  1634.                as if an asterisk were appended to it.
  1635.  
  1636.           @@@@LLLLeeeetttttttteeeerrrr
  1637.                Searches  the  alias  list  for  an  alias   named
  1638.                _Letter.  If an alias of this name is defined, its
  1639.                value is placed into the input queue for  process-
  1640.                ing.
  1641.  
  1642.   EEEEMMMMAAAACCCCSSSS EEEEddddiiiittttiiiinnnngggg MMMMooooddddeeee
  1643.      When the eeeemmmmaaaaccccssss option is set, interactive input line editing
  1644.      is  enabled.  This mode is slightly different from the emacs
  1645.      mode in AT&T's KornShell.  In this mode various _e_d_i_t_i_n_g _c_o_m_-
  1646.      _m_a_n_d_s  (typically  bound  to one or more control characters)
  1647.      cause immediate actions  without  waiting  for  a  new-line.
  1648.      Several  _e_d_i_t_i_n_g  _c_o_m_m_a_n_d_s  are  bound to particular control
  1649.      characters when the shell is invoked; these bindings can  be
  1650.      changed using the bbbbiiiinnnndddd command.
  1651.  
  1652.      The following _e_d_i_t_i_n_g _c_o_m_m_a_n_d_s are available, where a  caret
  1653.      indicates  the  control  character,  and ^[ is the ASCII ESC
  1654.      character.  Note that _e_d_i_t_i_n_g _c_o_m_m_a_n_d names  are  used  only
  1655.      with  the bbbbiiiinnnndddd command.  The default bindings were chosen to
  1656.      resemble corresponding EMACS key bindings.
  1657.  
  1658.      ___________________________________________________________________________________________________________
  1659.      Editing command           Default                  Function
  1660.      ___________________________________________________________________________________________________________
  1661.  
  1662.  
  1663. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               26
  1664.  
  1665.  
  1666.  
  1667.  
  1668. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  1669.  
  1670.  
  1671.  
  1672.      pppprrrreeeeffffiiiixxxx----3333                  0xE0
  1673.                                                         Introduces a 2-character command sequence.  This  prefix
  1674.                                                         allows  the  user to map PC function keys onto commands.
  1675.                                                         The second character is the IBM scan code value  of  the
  1676.                                                         function key to be assigned.  For example: _F_1 has a scan
  1677.                                                         code of ;;;;; _C_t_r_l-_F_1 has a scan code of ^^^^; _S_h_i_f_t-_F_1 has  a
  1678.                                                         scan code of TTTT; _A_l_t-_F_1 has a scan code of hhhh.
  1679.      bbbbeeeeggggiiiinnnnnnnniiiinnnngggg----ooooffff----lllliiiinnnneeee         Ctrl-A                   Moves the cursor to start of line.
  1680.      bbbbaaaacccckkkkwwwwaaaarrrrdddd----cccchhhhaaaarrrr             Ctrl-B                   Moves the cursor backward (left) one character.
  1681.      eeeeooootttt----oooorrrr----ddddeeeelllleeeetttteeee             Ctrl-D
  1682.                                                         Acts as  _e_n_d-_o_f-_f_i_l_e  if  alone  on  a  line;  otherwise
  1683.                                                         deletes current character.
  1684.      eeeennnndddd----ooooffff----lllliiiinnnneeee               Ctrl-E                   Moves the cursor to end of line.
  1685.      ffffoooorrrrwwwwaaaarrrrdddd----cccchhhhaaaarrrr              Ctrl-F                   Moves the cursor forward one position.
  1686.      aaaabbbboooorrrrtttt                     Ctrl-G
  1687.                                                         Useful as a response to a request for  a  sssseeeeaaaarrrrcccchhhh----hhhhiiiissssttttoooorrrryyyy
  1688.                                                         pattern in order to abort the search.
  1689.      ddddeeeelllleeeetttteeee----cccchhhhaaaarrrr----bbbbaaaacccckkkkwwwwaaaarrrrdddd      Ctrl-H
  1690.                                                         Deletes the previous character.
  1691.      nnnneeeewwwwlllliiiinnnneeee
  1692.                                Ctrl-M
  1693.                                Ctrl-J                   Executes the current line.
  1694.  
  1695.      kkkkiiiillllllll----ttttoooo----eeeeoooollll               Ctrl-K
  1696.                                                         Deletes from the cursor to the end of the line.  If pre-
  1697.                                                         ceded  by a numerical parameter whose value is less than
  1698.                                                         the  current  cursor  position,  this  editing   command
  1699.                                                         deletes  from  the  given position up to the cursor.  If
  1700.                                                         preceded by a numerical parameter whose value is greater
  1701.                                                         than  the  current cursor position, this editing command
  1702.                                                         deletes from the cursor up to given cursor position.
  1703.      rrrreeeeddddrrrraaaawwww                    Ctrl-L                   Linefeeds and print the current line.
  1704.      ddddoooowwwwnnnn----hhhhiiiissssttttoooorrrryyyy              Ctrl-N
  1705.                                                         Fetches the next command  line.   Each  time  Ctrl-N  is
  1706.                                                         entered,  the  next  command  line  forward  in  time is
  1707.                                                         accessed.
  1708.      ooooppppeeeerrrraaaatttteeee                   Ctrl-O
  1709.                                                         Executes the current line  and  fetches  the  next  line
  1710.                                                         relative to the current line from the history file.
  1711.      uuuupppp----hhhhiiiissssttttoooorrrryyyy                Ctrl-P
  1712.                                                         Fetches the  previous  command.   Each  time  CCCCttttrrrrllll----PPPP  is
  1713.                                                         entered,  the previous command back in time is accessed.
  1714.                                                         Moves back one line when not on the first line of a mul-
  1715.                                                         tiple line command.
  1716.      sssseeeeaaaarrrrcccchhhh----hhhhiiiissssttttoooorrrryyyy            Ctrl-R _S_t_r_i_n_g
  1717.                                                         Reverses search history for a previous command line con-
  1718.                                                         taining  the  string  specified by the SSSSttttrrrriiiinnnngggg parameter.
  1719.                                                         If a value of zero is given, the search is forward.  The
  1720.                                                         specified  ssssttttrrrriiiinnnngggg  is terminated by an _E_n_t_e_r or _n_e_w-_l_i_n_e
  1721.                                                         character.  If the ssssttttrrrriiiinnnngggg is  preceded  by  a  ^^^^  (caret
  1722.                                                         character), the matched line must begin with SSSSttttrrrriiiinnnngggg.  If
  1723.                                                         the SSSSttttrrrriiiinnnngggg parameter is omitted, then the  next  command
  1724.                                                         line  containing the most recent SSSSttttrrrriiiinnnngggg is accessed.  In
  1725.                                                         this case, a value of zero reverses the direction of the
  1726.                                                         search.
  1727.      ttttrrrraaaannnnssssppppoooosssseeee----cccchhhhaaaarrrrssss           Ctrl-T
  1728.                                                         Transposes the current character with the next character
  1729.                                                         in  eeeemmmmaaaaccccssss  mode.  Transposes the two previous characters
  1730.                                                         in ggggmmmmaaaaccccssss mode.
  1731.      kkkkiiiillllllll----lllliiiinnnneeee                 Ctrl-U                   Deletes the entire input line.
  1732.      kkkkiiiillllllll----rrrreeeeggggiiiioooonnnn               Ctrl-W                   Kills from the cursor to the mark.
  1733.      pppprrrreeeeffffiiiixxxx----2222                  Ctrl-X
  1734.                                                         Introduces a 2-character command sequence.
  1735.  
  1736.  
  1737.  
  1738.  
  1739.  
  1740. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               27
  1741.  
  1742.  
  1743.  
  1744.  
  1745. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  1746.  
  1747.  
  1748.  
  1749.      ppppoooopppp----tttteeeexxxxtttt                  Ctrl-Y
  1750.                                                         Restores the last item removed from  line.   (Yanks  the
  1751.                                                         item back to the line.)
  1752.      sssseeeeaaaarrrrcccchhhh----cccchhhhaaaarrrr----ffffoooorrrrwwwwaaaarrrrdddd       Ctrl-] _c
  1753.                                                         Moves the cursor forward on  the  current  line  to  the
  1754.                                                         indicated character.
  1755.      sssseeeeaaaarrrrcccchhhh----cccchhhhaaaarrrr----bbbbaaaacccckkkkwwwwaaaarrrrdddd
  1756.                                _P_r_e_f_i_x-_1 Ctrl-] _c
  1757.                                                         Search backwards in the current line for the  next  key-
  1758.                                                         board  character.   Moves  the  cursor  backword  on the
  1759.                                                         current line to the indicated character.
  1760.      qqqquuuuooootttteeee
  1761.                                Ctrl-^
  1762.                                \
  1763.                                                         Escapes the next character.  Editing characters  can  be
  1764.                                                         entered  in a command line or in a search string if pre-
  1765.                                                         ceded by a _q_u_o_t_e command.  The escape removes  the  next
  1766.                                                         character's editing features, if any.
  1767.      eeeeooootttt                       Ctrl-_                   Acts as an end-of-file.
  1768.      ccccoooommmmmmmmeeeennnntttt----eeeexxxxeeeeccccuuuutttteeee           _P_r_e_f_i_x-_1 #
  1769.                                                         Inserts a #### (pound sign) at the beginning  of  the  line
  1770.                                                         and  then execute the line.  This causes a comment to be
  1771.                                                         inserted in the history file.
  1772.      ccccoooommmmpppplllleeeetttteeee----lllliiiisssstttt             _P_r_e_f_i_x-_1 *
  1773.                                                         Attempts file name substitution on the current word.  An
  1774.                                                         asterisk  is appended if the word doesn't match any file
  1775.                                                         or contain any special pattern characters.
  1776.  
  1777.      pppprrrreeeevvvv----hhhhiiiisssstttt----wwwwoooorrrrdddd
  1778.      ccccooooppppyyyy----llllaaaasssstttt----aaaarrrrgggg
  1779.                                _P_r_e_f_i_x-_1 .
  1780.                                _P_r_e_f_i_x-_1 _
  1781.                                                         Inserts on the line the last word of the  previous  com-
  1782.                                                         mand.   If preceded by a numeric parameter, the value of
  1783.                                                         this parameter determines which word  to  insert  rather
  1784.                                                         than  the last word.  Note I/O redirections do not count
  1785.                                                         as words of the command.
  1786.      bbbbeeeeggggiiiinnnnnnnniiiinnnngggg----ooooffff----hhhhiiiissssttttoooorrrryyyy      _P_r_e_f_i_x-_1 <
  1787.                                                         Fetches the least recent (oldest) history line.
  1788.      lllliiiisssstttt                      _P_r_e_f_i_x-_1 =
  1789.                                                         Prints a sorted, columnated list of file names (if  any)
  1790.                                                         that  can  complete the partial word containing the cur-
  1791.                                                         sor.  Directory names have ////  postpended  to  them,  and
  1792.                                                         executable file names are followed by ****.
  1793.      eeeennnndddd----ooooffff----hhhhiiiissssttttoooorrrryyyy            _P_r_e_f_i_x-_1 >
  1794.                                                         Fetches the most recent (youngest) history line.
  1795.      bbbbaaaacccckkkkwwwwaaaarrrrdddd----wwwwoooorrrrdddd             _P_r_e_f_i_x-_1 B
  1796.                                                         Moves the cursor backward one word.
  1797.      ccccaaaappppiiiittttaaaalllliiiisssseeee----wwwwoooorrrrdddd           _P_r_e_f_i_x-_1 C
  1798.                                                         Capitalises the current word.
  1799.      ddddeeeelllleeeetttteeee----wwwwoooorrrrdddd----bbbbaaaacccckkkkwwwwaaaarrrrdddd
  1800.                                _P_r_e_f_i_x-_1 Ctrl-H
  1801.                                _P_r_e_f_i_x-_1 H
  1802.                                                         Deletes the previous word.
  1803.  
  1804.      ddddeeeelllleeeetttteeee----wwwwoooorrrrdddd----ffffoooorrrrwwwwaaaarrrrdddd       _P_r_e_f_i_x-_1 D
  1805.                                                         Deletes the current word.
  1806.      pppprrrreeeeffffiiiixxxx----1111                  ESC
  1807.                                                         Introduces a 2-character command sequence.  Three intro-
  1808.                                                         ducers are available.
  1809.      ccccoooommmmpppplllleeeetttteeee                  _P_r_e_f_i_x-_1 ESC
  1810.                                                         File-name completion.  Replaces the  current  word  with
  1811.                                                         the  longest  common prefix of all file names that match
  1812.                                                         the current word with  an  asterisk  appended.   If  the
  1813.                                                         match  is unique, a //// (slash) is appended if the file is
  1814.                                                         a directory and a space is appended if the file is not a
  1815.                                                         directory.
  1816.      ffffoooorrrrwwwwaaaarrrrdddd----wwwwoooorrrrdddd              _P_r_e_f_i_x-_1 F
  1817.                                                         Moves the cursor forward one word (a string  of  charac-
  1818.                                                         ters  consisting  of  only  letters,  digits, and under-
  1819.                                                         scores).
  1820.      ddddoooowwwwnnnnccccaaaasssseeee----wwwwoooorrrrdddd             _P_r_e_f_i_x-_1 L
  1821.                                                         Changes the current word to lowercase.
  1822.      mmmmuuuullllttttiiiippppllllyyyy                  _P_r_e_f_i_x-_1 M
  1823.                                                         Multiplies the parameter of the next command by 4.
  1824.      uuuuppppccccaaaasssseeee----wwwwoooorrrrdddd               _P_r_e_f_i_x-_1 U
  1825.                                                         Change the current word to upper-case.
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               28
  1834.  
  1835.  
  1836.  
  1837.  
  1838. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  1839.  
  1840.  
  1841.  
  1842.                                _P_r_e_f_i_x-_1 DDDDiiiiggggiiiittttssss
  1843.                                                         Defines the numeric parameter.  The ddddiiiiggggiiiittttssss are taken  as
  1844.                                                         a  parameter  to  the  next  command.  The commands that
  1845.                                                         accept  a  parameter  are  _f_o_r_w_a_r_d-_c_h_a_r,  _b_a_c_k_w_a_r_d-_c_h_a_r,
  1846.                                                         _b_a_c_k_w_a_r_d-_w_o_r_d,     _f_o_r_w_a_r_d-_w_o_r_d,    _d_e_l_e_t_e-_w_o_r_d-_f_o_r_w_a_r_d,
  1847.                                                         _d_e_l_e_t_e-_c_h_a_r-_f_o_r_w_a_r_d, _d_e_l_e_t_e-_w_o_r_d-_b_a_c_k_w_a_r_d,  _d_e_l_e_t_e-_c_h_a_r-
  1848.                                                         _b_a_c_k_w_a_r_d,   _p_r_e_v-_h_i_s_t-_w_o_r_d,  _c_o_p_y-_l_a_s_t-_a_r_g,  _u_p-_h_i_s_t_o_r_y,
  1849.                                                         _d_o_w_n-_h_i_s_t_o_r_y,  _s_e_a_r_c_h-_h_i_s_t_o_r_y,  _u_p_c_a_s_e-_w_o_r_d,   _d_o_w_n_c_a_s_e-
  1850.                                                         _w_o_r_d,   _c_a_p_i_t_a_l_i_s_e-_w_o_r_d,   _u_p_c_a_s_e-_c_h_a_r,   _d_o_w_n_c_a_s_e-_c_h_a_r,
  1851.                                                         _c_a_p_i_t_a_l_i_s_e-_c_h_a_r,  _k_i_l_l-_t_o-_e_o_l,  _s_e_a_r_c_h-_c_h_a_r-_f_o_r_w_a_r_d  and
  1852.                                                         _s_e_a_r_c_h-_c_h_a_r-_b_a_c_k_w_a_r_d.
  1853.      ccccaaaappppiiiittttaaaalllliiiisssseeee----cccchhhhaaaarrrr           _P_r_e_f_i_x-_1 c
  1854.                                                         Capitalises the current character.
  1855.      ddddoooowwwwnnnnccccaaaasssseeee----cccchhhhaaaarrrr             _P_r_e_f_i_x-_1 l
  1856.                                                         Change the character under the cursor to lower case.
  1857.      ppppuuuusssshhhh----tttteeeexxxxtttt                 _P_r_e_f_i_x-_1 p
  1858.                                                         Pushes the region from the cursor to  the  mark  on  the
  1859.                                                         stack.
  1860.      sssseeeetttt----mmmmaaaarrrrkkkk                  _P_r_e_f_i_x-_1 space           Sets a mark.
  1861.      uuuuppppccccaaaasssseeee----cccchhhhaaaarrrr               _P_r_e_f_i_x-_1 u
  1862.                                                         Change the character under the cursor to upper case.
  1863.      yyyyaaaannnnkkkk----ppppoooopppp                  _P_r_e_f_i_x-_1 y
  1864.                                                         Immediately after a yyyyaaaannnnkkkk,  replaces  the  inserted  text
  1865.                                                         string with the next previous killed text string.
  1866.      eeeexxxxcccchhhhaaaannnnggggeeee----ppppooooiiiinnnntttt----aaaannnndddd----mmmmaaaarrrrkkkk
  1867.                                _P_r_e_f_i_x-_2 Ctrl-X
  1868.                                                         Interchanges the cursor and the mark.
  1869.      jjjjoooobbbbssss                      _P_r_e_f_i_x-_2 j
  1870.                                                         Print a list of the current jobs (OS/2 only).
  1871.      aaaauuuuttttoooo----iiiinnnnsssseeeerrrrtttt
  1872.                                                         Simply causes the character to appear as literal  input.
  1873.                                                         (Most ordinary characters are bound to this.)
  1874.      ddddeeeelllleeeetttteeee----cccchhhhaaaarrrr----ffffoooorrrrwwwwaaaarrrrdddd
  1875.                                                         Deletes the character after the cursor.
  1876.      nnnnoooo----oooopppp
  1877.                                                         Does nothing.
  1878.      cccclllleeeeaaaarrrr----ssssccccrrrreeeeeeeennnn                                       Clear the screen and print the current line.
  1879.      rrrreeeesssseeeetttt                                              Reset input, clearing the current line and yank buffers.
  1880.                                _P_r_e_f_i_x-_1 Ctrl-] LLLLeeeetttttttteeeerrrr
  1881.                                                         Search the alias list for an alias named __L_e_t_t_e_r.  If an
  1882.                                                         alias  of this name is defined, its value is placed into
  1883.                                                         the input queue.
  1884.                                _P_r_e_f_i_x-_1 LLLLeeeetttttttteeeerrrr
  1885.                                                         Search the alias list for an alias named __L_e_t_t_e_r.  If an
  1886.                                                         alias  of this name is defined, its value is placed into
  1887.                                                         the input queue.  The LLLLeeeetttttttteeeerrrr parameter must not  specify
  1888.                                                         one of the escape functions.
  1889.  
  1890.   IIIInnnniiiittttiiiiaaaalllliiiissssaaaattttiiiioooonnnn FFFFiiiilllleeee
  1891.      When the shell is run in interactive mode, the Command  Line
  1892.      Editing  keys  and  other  user configuration parameters are
  1893.      read from the initialisation file _s_h._i_n_i.  This shell  looks
  1894.      for  this  file  in  the same directory as the sssshhhh executable
  1895.      which is running.  It does not  use  the  SSSSHHHHEEEELLLLLLLL  environment
  1896.      variable  or  search the directories in the PPPPAAAATTTTHHHH environment
  1897.      variable.  At present, there are two types of entry in  this
  1898.      file: keyboard configuration; and others.  The entry is con-
  1899.      tained in a single line and consists of a keyword (in  upper
  1900.      or  lower case), white space, an equals symbols, white space
  1901.      and one or two numeric values (see _s_t_r_t_o_l(_3) for valid  for-
  1902.      mats  where  _b_a_s_e  parameter is zero), followed by an end of
  1903.      line character.
  1904.  
  1905.      For the keyboard entries, the numeric values give the  MMMMSSSSDDDDOOOOSSSS
  1906.      Function  8  (Console  Input without Echo) return values for
  1907.      that  entry.   Note  that  extended  codes  (function  keys)
  1908.  
  1909.  
  1910.  
  1911. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               29
  1912.  
  1913.  
  1914.  
  1915.  
  1916. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  1917.  
  1918.  
  1919.  
  1920.      require  two calls to this function.  The first call returns
  1921.      zero and the second the extended code.  In the configuration
  1922.      file,  a  first  numeric  value of zero indicates a extended
  1923.      code and must be followed by a second value.  The shell also
  1924.      supports  the use of the AAAALLLLTTTT _k_e_y _i_n _c_o_m_b_i_n_a_t_i_o_n _w_i_t_h _a_n_o_t_h_e_r
  1925.      _k_e_y.  _I_n _t_h_i_s _c_a_s_e, _t_h_e  _f_i_r_s_t  _v_a_l_u_e  _c_o_n_t_a_i_n_s  0000xxxxffffffff,  that
  1926.      selects AAAALLLLTTTT key, and the second key contains the appropriate
  1927.      scan code for the key required.  The program sssshhhhoooowwwwkkkkeeeeyyyy can  be
  1928.      used to determine the scan codes required.
  1929.  
  1930.      A non-zero first numeric value must not be followed by  any-
  1931.      thing else on the line.
  1932.  
  1933.      Other entries must only have  one  numeric  value.   A  zero
  1934.      value disables the function and a non-zero value enables the
  1935.      function.  At present, there are two other functions:
  1936.  
  1937.      BBBBeeeellllllll Enable/disable warning bells
  1938.  
  1939.      HHHHaaaallllffffHHHHeeeeiiiigggghhhhtttt
  1940.           Use full or halfheight block cursor to indicate  Insert
  1941.           mode
  1942.  
  1943.      IIIInnnnsssseeeerrrrttttMMMMooooddddeeee
  1944.           Set the default insert mode on or off
  1945.  
  1946.      IIIInnnnsssseeeerrrrttttCCCCuuuurrrrssssoooorrrr
  1947.           Enable/disable the insert mode cursor.
  1948.  
  1949.      RRRRoooooooottttDDDDrrrriiiivvvveeee
  1950.           Determines  the  root  drive   from   which   to   read
  1951.           /_e_t_c/_p_r_o_f_i_l_e.
  1952.  
  1953.      EEEEOOOOFFFFKKKKeeeeyyyy
  1954.           Determines the End-of-File key.
  1955.  
  1956.      Invalid lines or lines beginning with a #### are ignored.
  1957.  
  1958.      The following table gives the list  of  valid  keywords  and
  1959.      their default values:
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               30
  1976.  
  1977.  
  1978.  
  1979.  
  1980. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  1981.  
  1982.      _________________________________________________________________________
  1983.       Keyword            First numeric   Second numeric   Actual Key
  1984.      _________________________________________________________________________
  1985.       KEYBOARD ENTRIES
  1986.       ScanBackward       0               0x49             PAGE UP
  1987.       ScanForeward       0               0x51             PAGE DOWN
  1988.       Previous           0               0x48             UP ARROW
  1989.       Next               0               0x50             DOWN ARROW
  1990.       Left               0               0x4b             LEFT ARROW
  1991.       Right              0               0x4d             RIGHT ARROW
  1992.       WordRight          0               0x74             Control RIGHT ARROW
  1993.       WordLeft           0               0x73             Control LEFT ARROW
  1994.       Start              0               0x47             HOME
  1995.       Clear              0               0x76             Control PAGE DOWN
  1996.       Flush              0               0x75             Control END
  1997.       End                0               0x4f             END
  1998.       Insert             0               0x52             INSERT
  1999.       DeleteRight        0               0x53             DELETE
  2000.       DeleteLeft         0x08                             BACKSPACE
  2001.       Complete           0               0x77             Control HOME
  2002.       Directory          0               0x0f             Shift TAB
  2003.       ClearScreen        0               0x84             Control PAGE UP
  2004.       Jobs               0               0x68             ALT F1
  2005.       Transpose          0x14                             Control T
  2006.       Quote              0x11                             Control Q
  2007.      _________________________________________________________________________
  2008.       OTHER FUNCTIONS
  2009.       Bell               0
  2010.       HalfHeight         0
  2011.       InsertMode         0
  2012.       InsertCursor       1
  2013.       RootDrive          3
  2014.       EOFKey             0x1a
  2015.      _________________________________________________________________________
  2016.  
  2017.   EEEExxxxeeeeccccuuuuttttiiiioooonnnn
  2018.      Each time a command is executed, the above substitutions are
  2019.      carried out.  If the command name matches one of the _S_p_e_c_i_a_l
  2020.      _C_o_m_m_a_n_d_s listed below, it is executed in the shell  process.
  2021.      If  the  command  name does not match a _S_p_e_c_i_a_l _C_o_m_m_a_n_d, but
  2022.      matches the name of a defined function, the function is exe-
  2023.      cuted  in  the shell process (note how this differs from the
  2024.      execution of shell procedures).  The  positional  parameters
  2025.      $$$$1111,  $$$$2222, ....  are set to the arguments of the function.  If
  2026.      the command name matches neither a _S_p_e_c_i_a_l _C_o_m_m_a_n_d  nor  the
  2027.      name  of a defined function, a new process is created and an
  2028.      attempt is made to execute the command via _e_x_e_c(2).
  2029.  
  2030.      The shell parameter PPPPAAAATTTTHHHH defines the  search  path  for  the
  2031.      directory  containing  the  command.   Alternative directory
  2032.      names are separated by a semi-colon (;;;;).  The  default  path
  2033.      is  ....;;;;cccc::::////bbbbiiiinnnn;;;;cccc::::////uuuussssrrrr////bbbbiiiinnnn  (specifying  the current directory,
  2034.      cccc::::////bbbbiiiinnnn, and cccc::::////uuuussssrrrr////bbbbiiiinnnn,  in  that  order).   Note  that  the
  2035.      current  directory  is  specified by a null path name, which
  2036.  
  2037.  
  2038.  
  2039. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               31
  2040.  
  2041.  
  2042.  
  2043.  
  2044. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  2045.  
  2046.  
  2047.  
  2048.      can appear immediately after the equal sign or  between  the
  2049.      semi-colon  delimiters  anywhere  else in the path list.  If
  2050.      the command name contains a //// or starts with xxxx:::: (where x  is
  2051.      a  drive  letter) the search path is not used; such commands
  2052.      will not be executed by the  restricted  shell.   Otherwise,
  2053.      each  directory  in  the  path is searched for an executable
  2054.      file.  Executable files are indicated  by  a  .exe  or  .com
  2055.      extension.   This extension is automatically supplied by the
  2056.      shell and not have to be entered by the user.
  2057.  
  2058.      If the file with a .com or .exe extension cannot be found in
  2059.      the  directory,  the file is opened and first 512 characters
  2060.      are read.  If there are no characters in the  block  with  a
  2061.      value  in  the  range  0  to  7, the file is assumed to be a
  2062.      script file containing shell commands.  Note that the  shell
  2063.      will  check  the  file and if that file does not exist or is
  2064.      not a script, it will try the file with an extension of  ....sssshhhh
  2065.      or  ....kkkksssshhhh.  If a ((((ggggiiiivvvveeeennnn bbbbyyyy tttthhhheeee eeeennnnvvvviiiirrrroooonnnnmmmmeeeennnntttt vvvvaaaarrrriiiiaaaabbbblllleeee SSSSHHHHEEEELLLLLLLL) is
  2066.      spawned to read it.
  2067.  
  2068.      If the script file starts with the a line  of  the  form  #!
  2069.      _i_n_t_e_r_p_r_e_t_e_r  [_a_r_g_u_m_e_n_t_s], the interpreter is invoked instead
  2070.      of the shell to process the script.  Optional arguments  can
  2071.      be  supplied  in the script file which are passed before the
  2072.      name of the script file.  Thus, if the file  _d_e_m_o  contained
  2073.      the following string as the first line
  2074.  
  2075.           #! perl -sP
  2076.  
  2077.      Entering _d_e_m_o _n_a_m_e would be equivalent to entering the  _p_e_r_l
  2078.      -_s_P _n_a_m_e at the command prompt.  Note that no other process-
  2079.      ing of the first line other that the  separation  (by  white
  2080.      space) into arguments is done.  Note that if the iiiinnnntttteeeerrrrpppprrrreeeetttteeeerrrr
  2081.      is either /_b_i_n/_s_h  or  /_b_i_n/_k_s_h,  the  value  of  the  SSSSHHHHEEEELLLLLLLL
  2082.      environment variable is used to execute the script.
  2083.  
  2084.      If none of the above conditions for a  executable  file  are
  2085.      detected  and  a  file  with  a .bat extension exists in the
  2086.      directory,  the  command  processor  given  by  the  CCCCOOOOMMMMSSSSPPPPEEEECCCC
  2087.      environment  variable  is spawned to process the file.  This
  2088.      is normally the standard MMMMSSSSDDDDOOOOSSSS _c_o_m_m_a_n_d._c_o_m or  OOOOSSSS////2222  _c_m_d._e_x_e
  2089.      processor.
  2090.  
  2091.      A parenthesized command is also executed in a sub-shell.
  2092.  
  2093.   CCCCoooommmmmmmmaaaannnndddd LLLLiiiinnnneeee BBBBuuuuiiiillllddddiiiinnnngggg
  2094.      The file pointed to by the EEEEXXXXTTTTEEEENNNNDDDDEEEEDDDD____LLLLIIIINNNNEEEE parameter  contains
  2095.      information  which  instructs the shell on how to create the
  2096.      command line for a particular program from  the  information
  2097.      entered  to  the shell.  If the program name is not found in
  2098.      this file, the standard MMMMSSSSDDDDOOOOSSSS or OOOOSSSS////2222  mechanisms  are  used
  2099.      with no special processing.
  2100.  
  2101.  
  2102.  
  2103. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               32
  2104.  
  2105.  
  2106.  
  2107.  
  2108. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  2109.  
  2110.  
  2111.  
  2112.      The file is scanned prior to the execution  of  an  external
  2113.      command.   An  entry  in  this file is contained in a single
  2114.      line and consists of a  program  name  (in  upper  or  lower
  2115.      case),  white  space,  an equals symbol, white space and the
  2116.      program type followed by up to four  optional  values,  fol-
  2117.      lowed  by  an  end  of  line character.  The vvvvaaaalllluuuueeee tells the
  2118.      shell how to build the command line and the optional  values
  2119.      provide additional information.  The valid pppprrrrooooggggrrrraaaammmm ttttyyyyppppeeeessss are
  2120.      (note that invalid entries cause a line to be ignored) given
  2121.      below.   These  pppprrrrooooggggrrrraaaammmm ttttyyyyppppeeeessss must appear as the first value
  2122.      following the _e_q_u_a_l_s.   Otherwise,  they  are  ignored.   An
  2123.      empty  pppprrrrooooggggrrrraaaammmm ttttyyyyppppeeeessss may be empty to only select one or more
  2124.      of the optional values.
  2125.  
  2126.      Under OOOOSSSS////2222, by default the shell generates the command  line
  2127.      using  the  format specified by Eberhard Mattes's EMX inter-
  2128.      face.  This is makes no difference to programs which do  not
  2129.      support the interface.
  2130.  
  2131.           uuuunnnniiiixxxx This program can process the  command  line  using
  2132.                the  indirect  command  file  character @@@@.  When a
  2133.                program, which can process this  format,  finds  a
  2134.                command  line  parameter  starting with a @@@@ in the
  2135.                command line, it treats the rest of the  parameter
  2136.                as  a  file  and reads the command line parameters
  2137.                from that file (one per  line,  the  end  of  line
  2138.                characters can be escaped by preceeding with a \\\\).
  2139.                Examples of this functionality include  the  Stan-
  2140.                dard LLLLiiiinnnnkkkkeeeerrrr and LLLLiiiibbbbrrrraaaarrrriiiiaaaannnn.
  2141.  
  2142.                The file name is set up in UUUUNNNNIIIIXXXX format (using //// as
  2143.                the directory separators).
  2144.  
  2145.                This functionality allows the user  to  get  round
  2146.                the  127  byte command line length limit of MMMMSSSSDDDDOOOOSSSS.
  2147.                A sample version of the code to process wild cards
  2148.                and  indirect  command  files is included with the
  2149.                source of the shell in the file _s_t_d_a_r_g_v._c.
  2150.  
  2151.           ddddoooossss  This program can process the  command  line  using
  2152.                the  indirect  command file character @@@@.  The file
  2153.                name is set up in DOS  format  (using  \\\\s  as  the
  2154.                directory separators).
  2155.  
  2156.           eeeennnnvvvviiiirrrroooonnnn
  2157.                The command line is passed to the external program
  2158.                in the environment variable specified by the first
  2159.                optional value.  The optional second  value  which
  2160.                is  numeric, gives the parameter separator charac-
  2161.                ter to be used (see _s_t_r_t_o_l(_3)  for  valid  formats
  2162.                where  _b_a_s_e  parameter  is  zero).  If this second
  2163.                value is missing or evaluates to  zero,  space  is
  2164.  
  2165.  
  2166.  
  2167. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               33
  2168.  
  2169.  
  2170.  
  2171.  
  2172. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  2173.  
  2174.  
  2175.  
  2176.                used.
  2177.  
  2178.      The following optional values described below  may  be  used
  2179.      after either uuuunnnniiiixxxx or ddddoooossss or by themselves:
  2180.  
  2181.           sssswwwwiiiittttcccchhhh
  2182.                The  optional  value  sssswwwwiiiittttcccchhhh  causes  the  program
  2183.                parameters  to  be  converted  from UUUUNNNNIIIIXXXX format to
  2184.                MMMMSSSSDDDDOOOOSSSS format.  This means that  parameters  begin-
  2185.                ning  with an ---- have it converted to a ////.  For all
  2186.                other parameters, ////s are converted  to  \\\\s.   This
  2187.                option  is  not  applied  to  quoted parameters or
  2188.                escaped characters.
  2189.  
  2190.                This functionality allows ease of entry  of  MMMMSSSSDDDDOOOOSSSS
  2191.                commands  which  expect MMMMSSSSDDDDOOOOSSSS directory separators
  2192.                which the shell interpretes as the escape  charac-
  2193.                ter (not that the underlying MMMMSSSSDDDDOOOOSSSS really cares).
  2194.  
  2195.           eeeexxxxppppoooorrrrtttt
  2196.                The  optional  value  eeeexxxxppppoooorrrrtttt  causes  the   marked
  2197.                environment  variables  to  be converted from UUUUNNNNIIIIXXXX
  2198.                format to MMMMSSSSDDDDOOOOSSSS format.   This  is  equivalent  to
  2199.                setting the -m flag for this program only.
  2200.  
  2201.           nnnnooooeeeexxxxppppaaaannnndddd
  2202.                The optional value  nnnnooooeeeexxxxppppaaaannnndddd  disables  file  name
  2203.                generation  when  building  the command line (also
  2204.                see sssseeeetttt command).
  2205.  
  2206.           nnnnoooosssswwwwaaaapppp
  2207.                The optional value nnnnoooosssswwwwaaaapppp  disables  swapping  for
  2208.                the  command.   This may speed up the execution of
  2209.                small commands.
  2210.  
  2211.           nnnnooooqqqquuuuooootttteeee
  2212.                The optional value nnnnooooqqqquuuuooootttteeee stops  the  shell  from
  2213.                escaping  double quotes in the command line before
  2214.                they are passed to  the  command.   Double  quotes
  2215.                processed by some programs.
  2216.  
  2217.   FFFFuuuunnnnccccttttiiiioooonnnnssss
  2218.      The ffffuuuunnnnccccttttiiiioooonnnn keyword,  described  in  the  CCCCoooommmmmmmmaaaannnnddddssss  section
  2219.      above,  is  used to define shell functions.  Shell functions
  2220.      are read in and stored internally.  Alias names are resolved
  2221.      when the function is read.  Functions are executed like com-
  2222.      mands with the arguments passed  as  positional  parameters.
  2223.      (See EEEExxxxeeeeccccuuuuttttiiiioooonnnn above).
  2224.  
  2225.      Functions execute in the same  process  as  the  caller  and
  2226.      share  all  files  and  present  working  directory with the
  2227.      caller.  Traps caught by  the  caller  are  reset  to  their
  2228.  
  2229.  
  2230.  
  2231. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               34
  2232.  
  2233.  
  2234.  
  2235.  
  2236. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  2237.  
  2238.  
  2239.  
  2240.      default  action  inside the function.  A trap condition that
  2241.      is not caught or ignored by the function causes the function
  2242.      to  terminate  and  the  condition  to  be  passed on to the
  2243.      caller.  A trap set on EXIT inside a  function  is  executed
  2244.      after the function completes.
  2245.  
  2246.      Ordinarily, variables are shared between the calling program
  2247.      and the function.  However, the ttttyyyyppppeeeesssseeeetttt special command used
  2248.      within  a  function  defines  local  variables  whose  scope
  2249.      includes the current function and all functions it calls.
  2250.  
  2251.      The special command rrrreeeettttuuuurrrrnnnn is used to return  from  function
  2252.      calls.   Errors  within  functions  return  control  to  the
  2253.      caller.
  2254.  
  2255.      Function identifiers can be listed with the ffffuuuunnnnccccttttiiiioooonnnn special
  2256.      command.   The text of functions will also be listed.  Func-
  2257.      tion can be undefined with the uuuunnnnffffuuuunnnnccccttttiiiioooonnnn special command.
  2258.  
  2259.      Ordinarily, functions are unset when the  shell  executes  a
  2260.      shell  script.   Functions  that  need  to be defined across
  2261.      separate invocations of the shell should be  placed  in  the
  2262.      EEEENNNNVVVV file.
  2263.  
  2264.   JJJJoooobbbbssss
  2265.      Under OOOOSSSS////2222, an interactive shell associates a _j_o_b with  each
  2266.      pipeline.   It keeps a table of current jobs, printed by the
  2267.      jjjjoooobbbbssss command, and assigns them small integer numbers.   When
  2268.      a  job  is started asynchronously with &&&&, the shell prints a
  2269.      line that looks like:
  2270.  
  2271.           [1] 1234
  2272.  
  2273.      indicating job number 1 was started asynchronously  and  had
  2274.      one (top-level) process whose process ID was 1234.
  2275.  
  2276.      There are several ways to refer to jobs in the shell.  A job
  2277.      can  be  referred to by the process id of any process in the
  2278.      job or by one of the following:
  2279.  
  2280.           %_n_u_m_b_e_r
  2281.                The job with the given number.
  2282.  
  2283.           %_s_t_r_i_n_g
  2284.                Any job whose command line begins with string.
  2285.  
  2286.           %?_s_t_r_i_n_g
  2287.                Any job whose command line contains string.
  2288.  
  2289.           %%   Current job.
  2290.  
  2291.           %+   Equivalent to %%.
  2292.  
  2293.  
  2294.  
  2295. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               35
  2296.  
  2297.  
  2298.  
  2299.  
  2300. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  2301.  
  2302.  
  2303.  
  2304.           %-   Previous job.
  2305.  
  2306.      The shell learns when a process changes state.   It  informs
  2307.      the  user  when  a  job  terminates, but only just before it
  2308.      prints a prompt.
  2309.  
  2310.      If you try to leave the shell  while  jobs  are  running  or
  2311.      stopped,  you  are warned, _Y_o_u _h_a_v_e _r_u_n_n_i_n_g _j_o_b_s_f_R.  _Y_o_u _m_a_y
  2312.      _u_s_e _t_h_e jjjjoooobbbbssss command to identify them.  If  you  immediately
  2313.      try  to  exit  again,  the  shell will not warn you a second
  2314.      time.
  2315.  
  2316.   SSSSppppeeeecccciiiiaaaallll CCCCoooommmmmmmmaaaannnnddddssss
  2317.      Input/output redirection is permitted  for  these  commands.
  2318.      File descriptor 1 is the default output location.
  2319.  
  2320.      ::::    No effect; the command does nothing.  A zero exit  code
  2321.           is returned.
  2322.  
  2323.      _l_e_t_t_e_r::::
  2324.           Select the drive specified by _l_e_t_t_e_r.
  2325.  
  2326.      .... _f_i_l_e
  2327.           Read and execute commands from _f_i_l_e  and  return.   The
  2328.           search  path  specified  by  PPPPAAAATTTTHHHH  is  used to find the
  2329.           directory containing _f_i_l_e.
  2330.  
  2331.      aaaalllliiiiaaaassss [ ----tttt ] [ _n_a_m_e[=_v_a_l_u_e ] ... ]
  2332.           AAAAlllliiiiaaaassss with no arguments prints the list of  aliases  in
  2333.           the  form  _n_a_m_e=vvvvaaaalllluuuueeee  on standard output.  An alias is
  2334.           defined for each _n_a_m_e whose _v_a_l_u_e is given.  A trailing
  2335.           space  in  _v_a_l_u_e causes the next word to be checked for
  2336.           alias substitution.  The ----tttt flag is  used  to  set  and
  2337.           list  tracked aliases.  The _v_a_l_u_e of a tracked alias is
  2338.           the full pathname corresponding to the given name.  The
  2339.           _v_a_l_u_e becomes undefined when the _v_a_l_u_e of PATH is reset
  2340.           but the aliases remained tracked.  Without the ----tttt flag,
  2341.           for  each  _n_a_m_e in the argument list for which no _v_a_l_u_e
  2342.           is given, the _n_a_m_e and _v_a_l_u_e of the alias  is  printed.
  2343.           Alias  returns zero unless a _n_a_m_e is given for which no
  2344.           alias has been defined.
  2345.  
  2346.      bbbbiiiinnnndddd -m [ _s_t_r_i_n_g ] = [ _e_d_i_t_i_n_g-_c_o_m_m_a_n_d ]
  2347.           BBBBiiiinnnndddd with no arguments prints the  list  of  EMACS  key
  2348.           bindings in the form _n_a_m_e=vvvvaaaalllluuuueeee on standard output. The
  2349.           specified _e_d_i_t_i_n_g _c_o_m_m_a_n_d is bound to the given _s_t_r_i_n_g,
  2350.           which  should consist of a control character (which may
  2351.           be written using  ``caret  notation''  ^^^^_x),  optionally
  2352.           preceded  by  one of the two prefix characters.  Future
  2353.           input of the _s_t_r_i_n_g will cause the _e_d_i_t_i_n_g  _c_o_m_m_a_n_d  to
  2354.           be  immediately invoked.  Three prefix characters (nor-
  2355.           mal ESC and ^X) are  supported.   If  the  -_m  flag  is
  2356.  
  2357.  
  2358.  
  2359. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               36
  2360.  
  2361.  
  2362.  
  2363.  
  2364. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  2365.  
  2366.  
  2367.  
  2368.           supplied, the specified input _s_t_r_i_n_g will afterwards be
  2369.           immediately  replaced  by  the  given   _e_d_i_t_i_n_g-_c_o_m_m_a_n_d
  2370.           string, which may contain _e_d_i_t_i_n_g _c_o_m_m_a_n_d_s.
  2371.  
  2372.      bbbbrrrreeeeaaaakkkk [ _n ]
  2373.           Exit from the enclosing ffffoooorrrr or wwwwhhhhiiiilllleeee loop, if any.   If
  2374.           _n is specified, break _n levels.
  2375.  
  2376.      bbbbuuuuiiiillllttttiiiinnnn [ _a_r_g_s ... ]
  2377.           Force the selection of the bbbbuuuuiiiillllttttiiiinnnn version  of  a  com-
  2378.           mand.   The builtin shell command selected by the first
  2379.           _a_r_g_s value is executed with the parameters  defined  by
  2380.           the remaining _a_r_g_ss.  If no arguments are given, a list
  2381.           of all _b_u_i_l_t_i_n commands is printed.
  2382.  
  2383.           If the first argument is one of the following, the pro-
  2384.           cessing  of  the builtin command in the following argu-
  2385.           ments are changed as indicated:
  2386.  
  2387.           ----aaaa   Set the following builtin commands to use  builtin
  2388.                version  in preference to any function or external
  2389.                versions.
  2390.  
  2391.           ----dddd   Set the following  builtin  commands  to  use  the
  2392.                function  or external version in preference to the
  2393.                builtin version.
  2394.  
  2395.           ----ssss   Display the current status of the following  buil-
  2396.                tin commands.
  2397.  
  2398.      ccccoooonnnnttttiiiinnnnuuuueeee [ _n ]
  2399.           Resume the next iteration of the enclosing ffffoooorrrr or wwwwhhhhiiiilllleeee
  2400.           loop.   If _n is specified, resume at the _n-th enclosing
  2401.           loop.
  2402.  
  2403.      ccccdddd [ ----LLLLPPPP ] [ _a_r_g ]
  2404.      ccccdddd   _s_e_a_r_c_h _r_e_p_l_a_c_e This command can be  in  either  of  two
  2405.           forms.  In the first form it changes the current direc-
  2406.           tory to _a_r_g.  The shell parameter HHHHOOOOMMMMEEEE is  the  default
  2407.           _a_r_g.   The  shell  parameter  CCCCDDDDPPPPAAAATTTTHHHH defines the search
  2408.           path for the  directory  containing  _a_r_g.   Alternative
  2409.           directory names are separated by a semi-colon (;;;;).  The
  2410.           default path is <<<<nnnnuuuullllllll>>>> (specifying the  current  direc-
  2411.           tory).  Note that the current directory is specified by
  2412.           a null path name, which can  appear  immediately  after
  2413.           the  equal  sign  or  between the semi-colon delimiters
  2414.           anywhere else in the path list.  If _a_r_g begins with a ////
  2415.           or  xxxx::::  (where x is a drive letter), the search path is
  2416.           not used.  Otherwise, each directory  in  the  path  is
  2417.           searched  for  _a_r_g.  The _c_d command may not be executed
  2418.           by _r_s_h.
  2419.  
  2420.  
  2421.  
  2422.  
  2423. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               37
  2424.  
  2425.  
  2426.  
  2427.  
  2428. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  2429.  
  2430.  
  2431.  
  2432.           The -_L option (default) preserves logical  naming  when
  2433.           treating  substituted  drives (see SSSSUUUUBBBBSSSSTTTT((((1111))))).  ccccdddd ----LLLL ........
  2434.           moves the current directory one path  component  closer
  2435.           to  the  root  directory.   The ----PPPP option preserves the
  2436.           physical path when treating substituted drives.  ccccdddd  ----PPPP
  2437.           ........  changes  the working directory to the parent direc-
  2438.           tory of the current directory.  These options are  only
  2439.           available under the MSDOS 16 bit version.
  2440.  
  2441.           In the second form, ccccdddd substitutes the  string  _r_e_p_l_a_c_e
  2442.           for  the  string  _s_e_a_r_c_h in the current directory name,
  2443.           PPPPWWWWDDDD and tries to change to this new directory.
  2444.  
  2445.           Note that the name cccchhhhddddiiiirrrr is an builtin alternative name
  2446.           for  ccccdddd, allowing the user to set up aliases for ccccdddd and
  2447.           still have access to the change  directory  functional-
  2448.           ity.
  2449.  
  2450.      ddddeeeettttaaaacccchhhh _p_r_o_g_r_a_m [ _a_r_g_s ]
  2451.           This command  (which  is  only  available  under  OOOOSSSS////2222)
  2452.           starts and simultaneously detaches an OOOOSSSS////2222 _p_r_o_g_r_a_m from
  2453.           the shell.  Any _p_r_o_g_r_a_m that  is  started  with  ddddeeeettttaaaacccchhhh
  2454.           command  must  be able to process independently outside
  2455.           the control of the shell.  Builtin shell  commands  and
  2456.           functions cannot be detached.
  2457.  
  2458.      eeeecccchhhhoooo [ _a_r_g ... ]
  2459.           Echo arguments. EEEEcccchhhhoooo writes its arguments separated  by
  2460.           blanks  and  terminated  by  a new-line on the standard
  2461.           output.  It also understands C-like escape conventions;
  2462.           beware of conflicts with the shell's use of \\\\:
  2463.  
  2464.           \\\\bbbb   backspace
  2465.           \\\\cccc   print line without new-line
  2466.           \\\\ffff   form-feed
  2467.           \\\\nnnn   new-line
  2468.           \\\\rrrr   carriage return
  2469.           \\\\tttt   tab
  2470.           \\\\vvvv   vertical tab
  2471.           \\\\\\\\   backslash
  2472.           \\\\_n   the 8-bit character whose ASCII code is the 1-, 2-
  2473.                or 3-digit octal number _n, which must start with a
  2474.                zero.
  2475.  
  2476.                _E_c_h_o is useful for producing diagnostics  in  com-
  2477.                mand files and for sending known data into a pipe.
  2478.  
  2479.      eeeevvvvaaaallll [ _a_r_g ... ]
  2480.           The arguments are read as input to the  shell  and  the
  2481.           resulting command(s) executed.
  2482.  
  2483.      eeeexxxxeeeecccc [ _a_r_g ... ]
  2484.  
  2485.  
  2486.  
  2487. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               38
  2488.  
  2489.  
  2490.  
  2491.  
  2492. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  2493.  
  2494.  
  2495.  
  2496.           The command specified by the arguments is  executed  in
  2497.           place  of  this  shell  without creating a new process.
  2498.           Input/output arguments may  appear  and,  if  no  other
  2499.           arguments are given, cause the shell input/output to be
  2500.           modified.
  2501.  
  2502.      eeeexxxxiiiitttt [ _n ]
  2503.           Causes a shell to exit with the exit  status  specified
  2504.           by  _n.   If _n is omitted the exit status is that of the
  2505.           last command executed (an end-of-file will  also  cause
  2506.           the shell to exit.)
  2507.  
  2508.      eeeexxxxppppoooorrrrtttt [ _n_a_m_e[=_v_a_l_u_e] ... ]
  2509.           The given _n_a_m_es are marked for automatic export to  the
  2510.           _e_n_v_i_r_o_n_m_e_n_t  of  subsequently-executed commands.  If no
  2511.           arguments are given, a  list  of  all  names  that  are
  2512.           exported  in this shell is printed.  Function names may
  2513.           _n_o_t be exported.
  2514.  
  2515.      ffffaaaallllsssseeee
  2516.           No effect; the command does nothing.  A  non-zero  exit
  2517.           code is returned.
  2518.  
  2519.      ffffcccc [ ----eeee _E_d_i_t_o_r_N_a_m_e ] [ ----nnnnllllrrrr ] [ _F_i_r_s_t [ _L_a_s_t ] ]
  2520.      ffffcccc ----eeee ---- [ _O_l_d=_N_e_w ] [ _C_o_m_m_a_n_d ]
  2521.           In the first form, a range of commands  from  _F_i_r_s_t  to
  2522.           _L_a_s_t  is  selected from the last 100 commands that were
  2523.           typed at the terminal.  The _F_i_r_s_t and  _L_a_s_t  parameters
  2524.           can  be specified as a number or as a string.  A string
  2525.           locates the most recent command starting with the given
  2526.           string.   A negative number is used as an offset to the
  2527.           current command number.  If _L_a_s_t is not specified, then
  2528.           it  is  set  to  _F_i_r_s_t.  If _F_i_r_s_t is not specified, the
  2529.           default is the previous command for editing and -16 for
  2530.           listing.
  2531.  
  2532.           ----llll   Lists the commands to standard output.
  2533.  
  2534.           ----rrrr   Reverses the order of the commands in the list.
  2535.  
  2536.           ----nnnn   Suppresses command numbers when listing.
  2537.  
  2538.           If the ----llll flag is not  specified,  the  editor  program
  2539.           specified by _E_d_i_t_o_r_N_a_m_e is invoked on a file containing
  2540.           these key-board commands.  If _E_d_i_t_o_r_N_a_m_e  is  not  sup-
  2541.           plied,  then  the value of the FFFFCCCCEEEEDDDDIIIITTTT parameter is used
  2542.           as the editor.  When editing is  complete,  the  edited
  2543.           command(s) is executed.
  2544.  
  2545.           In the second form, the specified  _c_o_m_m_a_n_d  is  carried
  2546.           out again after the _O_l_d=_N_e_w substitution is performed.
  2547.  
  2548.  
  2549.  
  2550.  
  2551. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               39
  2552.  
  2553.  
  2554.  
  2555.  
  2556. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  2557.  
  2558.  
  2559.  
  2560.      ffffuuuunnnnccccttttiiiioooonnnnssss [ _n_a_m_e ... ]
  2561.           The functions given by _n_a_m_es are printed.  If no  argu-
  2562.           ments are given, a all the functions are displayed.
  2563.  
  2564.      ggggeeeettttooooppppttttssss _o_p_t_s_t_r_i_n_g _n_a_m_e [ _a_r_g ... ]
  2565.           Checks _a_r_g for legal options.  If _a_r_g is  omitted,  the
  2566.           positional  parameters  are  used.   An option argument
  2567.           begins with a ++++ or a ----.  An option not beginning with ++++
  2568.           or  ----  or  the argument -------- ends the options.  _o_p_t_s_t_r_i_n_g
  2569.           contains the letters that  ggggeeeettttooooppppttttssss  recognizes.   If  a
  2570.           letter  is  followed by a ::::, that option is expected to
  2571.           have an argument.  The options can  be  separated  from
  2572.           the argument by blanks.
  2573.  
  2574.           ggggeeeettttooooppppttttssss places the next option letter it  finds  inside
  2575.           variable  _n_a_m_e  eeeeaaaacccchhhh  ttttiiiimmmmeeee  iiiitttt  iiiissss  iiiinnnnvvvvooookkkkeeeedddd,,,,  wwwwiiiitttthhhh  aaaa ++++
  2576.           prepended when _a_r_g begins with a ++++.  The index  of  the
  2577.           next  arg is stored in OOOOPPPPTTTTIIIINNNNDDDD.  The option argument, if
  2578.           any, gets stored in OOOOPPPPTTTTAAAARRRRGGGG,
  2579.  
  2580.           A leading :::: in _o_p_t_s_t_r_i_n_g causes ggggeeeettttooooppppttttssss  to  store  the
  2581.           letter  of an invalid option in OOOOPPPPTTTTAAAARRRRGGGG, and to set _n_a_m_e
  2582.           to ???? for an unknown option and to  ::::  when  a  required
  2583.           option  is missing.  Otherwise, ggggeeeettttooooppppttttssss prints an error
  2584.           message.  The exit status is non-zero when there are no
  2585.           more options.
  2586.  
  2587.      hhhhiiiissssttttoooorrrryyyy [ ----ddddeeeeiiiillllssss ]
  2588.           The hhhhiiiissssttttoooorrrryyyy command, with no arguments, will print  all
  2589.           the  commands  that  are currently saved in the shell's
  2590.           history buffers.  As new  commands  are  executed,  and
  2591.           space  in  the  buffers  runs out, old commands will be
  2592.           deleted.  The hhhhiiiissssttttoooorrrryyyy commands prints  out  the  stored
  2593.           commands with sequence numbers.  Negative numbered com-
  2594.           mands, through command number zero, are  commands  that
  2595.           were  retrieved  from the saved history file.  Commands
  2596.           starting at one were entered during the  current  login
  2597.           session.   If  a  saved  command contains embedded new-
  2598.           lines, these will be printed out as the sequence \\\\nnnn, so
  2599.           that individual command stay on one line.
  2600.  
  2601.           The arguments changes the way the shell processes  his-
  2602.           tory information as follows:
  2603.  
  2604.           ----dddd   Disable the saving  of  commands  in  the  history
  2605.                file.
  2606.  
  2607.           ----eeee   Enable the saving of commands in the history file.
  2608.  
  2609.           ----iiii   Initialise the history file.
  2610.  
  2611.           ----llll   Load the  history  from  the  file  given  by  the
  2612.  
  2613.  
  2614.  
  2615. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               40
  2616.  
  2617.  
  2618.  
  2619.  
  2620. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  2621.  
  2622.  
  2623.  
  2624.                HHHHIIIISSSSTTTTFFFFIIIILLLLEEEE environment variable.
  2625.  
  2626.           ----ssss   Save the history to the file given by the HHHHIIIISSSSTTTTFFFFIIIILLLLEEEE
  2627.                environment variable.
  2628.  
  2629.      jjjjoooobbbbssss [ ----llllpppp | [ ----PPPP _j_o_b ] ]
  2630.           This command (which is only available under OOOOSSSS////2222) lists
  2631.           the  active jobs; or all active jobs if job is omitted.
  2632.           The ----llll options lists process id's in  addition  to  the
  2633.           normal  information.   The  ----pppp flag lists all the child
  2634.           processes of the current shell, displaying  their  pro-
  2635.           cess  ID  and thread count.  The ----PPPP iiiidddd option lists all
  2636.           the child processes of the specified  process  or  job.
  2637.           See JJJJoooobbbbssss for a description of the format of job.
  2638.  
  2639.      kkkkiiiillllllll [ ----ssssiiiigggg ] [ _p_r_o_c_e_s_s | %%%%_j_o_b_i_d ] ...
  2640.           This command (which is only available under OOOOSSSS////2222) sends
  2641.           either  the  TTTTEEEERRRRMMMM  (terminate)  signal or the specified
  2642.           signal to the specified _p_r_o_c_e_s_s_e_s.  Signals  are  given
  2643.           by name, which are listed by ''''kkkkiiiillllllll ----llll''''.  If the _p_r_o_c_e_s_s
  2644.           number begins with a %%%%, the signal is sent to  the  job
  2645.           referenced.   See  JJJJoooobbbbssss for a description of the format
  2646.           of a _j_o_b.
  2647.  
  2648.      lllleeeetttt [ _a_r_g ... ]
  2649.           Each _a_r_g is an arithmetic expression to  be  evaluated.
  2650.           All calculations are done as long integers and no check
  2651.           for overflow is performed.  See  AAAArrrriiiitttthhhhmmmmeeeettttiiiicccc  EEEEvvvvaaaalllluuuuaaaattttiiiioooonnnn
  2652.           above for a description of arithmetic expressions..
  2653.  
  2654.           The return code is 0 if the value of the  last  expres-
  2655.           sion is non-zero, and 1 otherwise.
  2656.  
  2657.      mmmmssssddddoooossss [ _n_a_m_e[=_v_a_l_u_e] ... ]
  2658.           The given _n_a_m_es are marked _m_s_d_o_s format and if  the  ----mmmm
  2659.           flag is set, the values of the these _n_a_m_es are exported
  2660.           to child  processes  with  any  slashes  in  the  value
  2661.           replaced  by  \\\\s.  If no arguments are given, a list of
  2662.           all _m_s_d_o_s names is printed.
  2663.  
  2664.      pppprrrriiiinnnntttt [ ----RRRRnnnnpppprrrrssss ] [ ----uuuu uuuunnnniiiitttt ] [ _a_r_g_s ... ]
  2665.           The shell output mechanism.  With no flags or with flag
  2666.           -  or  --  the  _a_r_g_s  are printed on standard output as
  2667.           described by the eeeecccchhhhoooo command.
  2668.  
  2669.           ----RRRR   Prints in the raw mode, in which the  escape  con-
  2670.                ventions  of the eeeecccchhhhoooo command are ignored.  The -_R
  2671.                option prints  all  subsequent  _a_r_g_s  and  options
  2672.                other than -_n.
  2673.  
  2674.           ----nnnn   Prevents a new-line from being added to  the  out-
  2675.                put.
  2676.  
  2677.  
  2678.  
  2679. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               41
  2680.  
  2681.  
  2682.  
  2683.  
  2684. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  2685.  
  2686.  
  2687.  
  2688.           ----pppp   ----pppp flag has not effect and is defined for compata-
  2689.                bility.
  2690.  
  2691.           ----rrrr   Prints in the raw mode, in which the  escape  con-
  2692.                ventions of the eeeecccchhhhoooo command are ignored.
  2693.  
  2694.           ----ssss   Writes the _a_r_g_s to the history file instead of  to
  2695.                standard output.
  2696.  
  2697.           ----uuuu uuuunnnniiiitttt
  2698.                Specifies a one digit file descriptor uuuunnnniiiitttt  number
  2699.                on which the output is placed.  The default is 1.
  2700.  
  2701.      ppppwwwwdddd [ ----LLLLPPPP ] [ _d_r_i_v_e ... ]
  2702.           Print the  current  working  directory.   If  _d_r_i_v_e  is
  2703.           present,  the  current working directory on each of the
  2704.           drives is printed.  _d_r_i_v_e contains a  string  of  drive
  2705.           letters, no colons are required.
  2706.  
  2707.           The -_L option (default) preserves the  logical  meaning
  2708.           of  the current directory and -_P preserves the physical
  2709.           meaning of the current directory if it is on a  substi-
  2710.           tuted drive (see ccccdddd and SSSSUUUUBBBBSSSSTTTT((((1111))))).  This option is only
  2711.           available under the MSDOS 16bit version.
  2712.  
  2713.      rrrreeeeaaaadddd [ ----pppprrrrssss ] [ ----uuuu uuuunnnniiiitttt ] [ _n_a_m_e?_p_r_o_m_p_t ] [ _n_a_m_e ... ]
  2714.           The shell input mechanism.  One line  is  read  and  is
  2715.           broken  up  into  words  using the characters in IIIIFFFFSSSS as
  2716.           separators.  In raw mode, ----rrrr, a \\\\ at the end of a  line
  2717.           does  not signify line continuation.  The first word is
  2718.           assigned to the first _n_a_m_e,  the  second  word  to  the
  2719.           second  _n_a_m_e, etc., with leftover words assigned to the
  2720.           last _n_a_m_e.  If the ----ssss flag is present, the  input  will
  2721.           be saved as a command in the history file.  The ----pppp flag
  2722.           has not effect and is defined for  compatability.   The
  2723.           flag  ----uuuu  can  be  used  to  specify  a  one digit file
  2724.           descriptor uuuunnnniiiitttt to read from.  The file descriptor  can
  2725.           be  opened  with the eeeexxxxeeeecccc special command.  The default
  2726.           value of uuuunnnniiiitttt is 0.  If _n_a_m_e is omitted then  RRRREEEEPPPPLLLLYYYY  is
  2727.           used  as  the default name.  If the first argument con-
  2728.           tains a ????, the remainder of this  word  is  used  as  a
  2729.           prompt  when  the  shell  is interactive.  If the given
  2730.           file descriptor is open for writing and is  a  terminal
  2731.           device  then the prompt is placed on this unit.  Other-
  2732.           wise the prompt is issued on file  descriptor  2.   The
  2733.           return code is 0 unless an end-of-file is encountered.
  2734.  
  2735.      rrrreeeeaaaaddddoooonnnnllllyyyy [ _n_a_m_e[=_v_a_l_u_e] ... ]
  2736.           The given _n_a_m_es are marked _r_e_a_d_o_n_l_y and the  values  of
  2737.           the  these  _n_a_m_es  may  not  be  changed  by subsequent
  2738.           assignment.  If no arguments are given, a list  of  all
  2739.           _r_e_a_d_o_n_l_y names is printed.
  2740.  
  2741.  
  2742.  
  2743. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               42
  2744.  
  2745.  
  2746.  
  2747.  
  2748. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  2749.  
  2750.  
  2751.  
  2752.      rrrreeeettttuuuurrrrnnnn [ _n ]
  2753.           Causes a function to exit with the return value  speci-
  2754.           fied  by _n.  If _n is omitted, the return status is that
  2755.           of the last command executed.
  2756.  
  2757.      sssseeeetttt [ [----||||++++]aaaaeeeeffffkkkkmmmmnnnnttttuuuuvvvvxxxx ] [ ----oooo ooooppppttttiiiioooonnnn ] [ _a_r_g ... ]
  2758.  
  2759.           ----aaaa   Mark variables which are modified or  created  for
  2760.                export.
  2761.  
  2762.           ----eeee   Exit immediately if a command exits  with  a  non-
  2763.                zero exit status.
  2764.  
  2765.           ----ffff   Disable file name generation
  2766.  
  2767.           ----hhhh   Each command becomes a tracked  alias  when  first
  2768.                encountered.
  2769.  
  2770.           ----kkkk   All keyword arguments are placed in  the  environ-
  2771.                ment  for  a  command, not just those that precede
  2772.                the command name.
  2773.  
  2774.           ----mmmm   Background jobs will run  in  a  separate  process
  2775.                group  and a line will print upon completion.  The
  2776.                exit status of background jobs is  reported  in  a
  2777.                completion  message.  This  only  applies to OOOOSSSS////2222.
  2778.                The programs are detached from the current process
  2779.                group.
  2780.  
  2781.           ----nnnn   Read commands but do not execute them.
  2782.  
  2783.           ----oooo ooooppppttttiiiioooonnnn
  2784.                The argument that follows this option can  be  one
  2785.                of the following option names:
  2786.  
  2787.                aaaalllllllleeeexxxxppppoooorrrrtttt
  2788.                     Same as ----aaaa....
  2789.  
  2790.                bbbbeeeellllllll Enable alarm bell on errors
  2791.  
  2792.                bbbbrrrreeeeaaaakkkk
  2793.                     Enable  the  extended  SIGINT  checking  (see
  2794.                     BBBBRRRREEEEAAAAKKKK  [ OOOONNNN |||| OOOOFFFFFFFF ] under _C_O_M_M_A_N_D._C_O_M).  This
  2795.                     option is only available under MMMMSSSSDDDDOOOOSSSS.
  2796.  
  2797.                eeeemmmmaaaaccccssss
  2798.                     Select emacs-like command line editing mode.
  2799.  
  2800.                eeeerrrrrrrreeeexxxxiiiitttt
  2801.                     Same as ----eeee....
  2802.  
  2803.                ggggmmmmaaaaccccssss
  2804.  
  2805.  
  2806.  
  2807. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               43
  2808.  
  2809.  
  2810.  
  2811.  
  2812. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  2813.  
  2814.  
  2815.  
  2816.                     Select gmacs-like command line editing mode.
  2817.  
  2818.                hhhhaaaallllffffhhhheeeeiiiigggghhhhtttt
  2819.                     Set cursor to halfheight when in insert mode.
  2820.                     If off, a full height cursor is used.
  2821.  
  2822.                iiiiggggnnnnoooorrrreeeeccccaaaasssseeee
  2823.                     Under OOOOSSSS////2222, on non-FAT  (ie  case  retentive)
  2824.                     file systems, the shell will match file names
  2825.                     ignoring case.   Normally,  the  matches  are
  2826.                     case sensitive even though the file system is
  2827.                     only case retentive.
  2828.  
  2829.                iiiiggggnnnnoooorrrreeeeeeeeooooffff
  2830.                     The shell will not exit on end-of-file.   The
  2831.                     command exit must be used.
  2832.  
  2833.                iiiinnnnsssseeeerrrrttttmmmmooooddddeeee
  2834.                     Set the default edit mode  to  insert  rather
  2835.                     than overwrite.
  2836.  
  2837.                kkkkeeeeyyyywwwwoooorrrrdddd
  2838.                     Same as ----kkkk....
  2839.  
  2840.                mmmmaaaarrrrkkkkddddiiiirrrrssss
  2841.                     Appends a / (slash) to  all  directory  names
  2842.                     that  are a result of file name substitution.
  2843.                     mmmmssssddddoooossss Same as ----MMMM....
  2844.  
  2845.                nnnnoooocccclllloooobbbbbbbbeeeerrrr
  2846.                     Prevents redirection >>>> from truncating exist-
  2847.                     ing  files.   A  vertical bar must follow the
  2848.                     redirection symbol ((((>>>>||||)))) to  truncate  a  file
  2849.                     when this option is turned on.
  2850.  
  2851.                nnnnooooeeeexxxxeeeecccc
  2852.                     Same as ----nnnn....
  2853.  
  2854.                nnnnoooogggglllloooobbbb
  2855.                     Same as ----ffff....
  2856.  
  2857.                nnnnoooouuuunnnnsssseeeetttt
  2858.                     Same as ----uuuu....
  2859.  
  2860.                pppprrrriiiivvvviiiilllleeeeggggeeeedddd
  2861.                     Same as ----pppp....
  2862.  
  2863.                rrrreeeeaaaallllppppiiiippppeeeessss
  2864.                     Under OOOOSSSS////2222, the shell will use OOOOSSSS////2222 pipes and
  2865.                     not temporary files to handle pipelines.  See
  2866.                     LLLLIIIIMMMMIIIITTTTAAAATTTTIIIIOOOONNNNSSSS.
  2867.  
  2868.  
  2869.  
  2870.  
  2871. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               44
  2872.  
  2873.  
  2874.  
  2875.  
  2876. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  2877.  
  2878.  
  2879.  
  2880.                ttttrrrraaaacccckkkkaaaallllllll
  2881.                     Same as ----hhhh....
  2882.  
  2883.                vvvveeeerrrrbbbboooosssseeee
  2884.                     Same as ----vvvv....
  2885.  
  2886.                vvvveeeerrrriiiiffffyyyy
  2887.                     Same as ----VVVV....
  2888.  
  2889.                vvvviiii   Select vi-like command line editing mode.
  2890.  
  2891.                xxxxttttrrrraaaacccceeee
  2892.                     Same as ----xxxx....
  2893.  
  2894.           ----pppp   Not supported.
  2895.  
  2896.           ----tttt   Exit after reading and executing one command.
  2897.  
  2898.           ----uuuu   Treat unset variables as an error when  substitut-
  2899.                ing.
  2900.  
  2901.           ----vvvv   Print shell input lines as they are read.
  2902.  
  2903.           ----wwww   Disable shell warning messages.
  2904.  
  2905.           ----xxxx   Print commands and their  arguments  as  they  are
  2906.                executed.
  2907.  
  2908.           ----MMMM   For those variables marked as mmmmssssddddoooossss variables, the
  2909.                values  are  exported  to child processes with the
  2910.                slashes replaced by \\\\s.  Most MMMMSSSSDDDDOOOOSSSS  utilities  do
  2911.                not care if a file name contains a slash or \\\\ as a
  2912.                directory  separator.   However,  some  like   the
  2913.                _l_i_n_k_e_r  require  \\\\s  in the value of the LLLLIIIIBBBB vari-
  2914.                able.
  2915.  
  2916.           ----VVVV   Enable the File write verification option  in  the
  2917.                operation  system  (see  VVVVEEEERRRRIIIIFFFFYYYY [ OOOONNNN |||| OOOOFFFFFFFF ] under
  2918.                _C_O_M_M_A_N_D._C_O_M or _C_M_D._E_X_E).
  2919.  
  2920.           --------   Do not change any of the flags; useful in  setting
  2921.                $$$$1111 to ----.
  2922.  
  2923.                Using ++++ rather than ---- causes  these  flags  to  be
  2924.                turned  off.   These  flags  can also be used upon
  2925.                invocation of the shell.  The current set of flags
  2926.                may  be  found in $$$$----.  The remaining arguments are
  2927.                positional parameters and are assigned, in  order,
  2928.                to  $$$$1111,  $$$$2222,  ....   If no arguments are given the
  2929.                values of all names are printed.
  2930.  
  2931.      sssshhhhiiiifffftttt [ _n ]
  2932.  
  2933.  
  2934.  
  2935. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               45
  2936.  
  2937.  
  2938.  
  2939.  
  2940. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  2941.  
  2942.  
  2943.  
  2944.           The positional parameters from $$$$nnnn++++1111 ...  are renamed $$$$1111
  2945.           ....  If _n is not given, it is assumed to be 1.
  2946.  
  2947. [ _p_r_o_g_r_a_m _a_r_g_s...]] [ ----AAAA sssseeeessssssssiiiioooonnnnIIIIdddd ]
  2948.      ssssttttaaaarrrrtttt [[ ----ddddffffWWWWPPPPFFFFiiiiCCCCIIIISSSS ] [ ----cccc [ vvvviiiillllssssnnnn ]] [ ----tttt ttttiiiittttlllleeee ] [ ----
  2949.           eeee ssssttttrrrriiiinnnngggg  ]
  2950.           This command  (which  is  only  available  under  OOOOSSSS////2222)
  2951.           starts  an  OOOOSSSS////2222 (or MMMMSSSSDDDDOOOOSSSS under OOOOSSSS////2222 2.x) _p_r_o_g_r_a_m in a
  2952.           new session.  If no _p_r_o_g_r_a_m  and  _a_r_g_u_m_e_n_t_s  parameters
  2953.           are  entered, the shell is started unless the -C option
  2954.           has been used to select  the  OOOOSSSS////2222  command  processor.
  2955.           Also see DDDDoooossssSSSSttttaaaarrrrttttSSSSeeeessssssssiiiioooonnnn((((2222)))).
  2956.  
  2957.           The arguments changes the way the shell starts the ses-
  2958.           sion as follows:
  2959.  
  2960.           ----dddd   Normally, command  are  started  by  invoking  the
  2961.                shell in the new session.  This option invokes the
  2962.                command directly.
  2963.  
  2964.           ----SSSS   Invoke the shell to started the command in the new
  2965.                session.
  2966.  
  2967.           ----ffff   The program becomes  the  foreground  session.  If
  2968.                this  parameter  is  not  specified,  the  program
  2969.                becomes a background session.
  2970.  
  2971.           ----iiii   The new session will inherit the original environ-
  2972.                ment  of the shell instead of the current environ-
  2973.                ment.
  2974.  
  2975.           ----IIII   The new session will independent  of  the  current
  2976.                process.  Normally, the session is a child session
  2977.                of the current process.  Independent sessions  are
  2978.                not  terminated when the shell terminates.  Start-
  2979.                ing a child session prevents any child session  or
  2980.                process from also starting new sessions.
  2981.  
  2982.           ----tttt ttttiiiittttlllleeee
  2983.                Sets the _t_i_t_l_e of the new session.
  2984.  
  2985.           ----FFFF   This application is a full-screen application that
  2986.                must  run  in  a  separate  session independent of
  2987.                Presentation Manager.
  2988.  
  2989.           ----WWWW   This is an OOOOSSSS////2222 application  that  runs  within  a
  2990.                Presentation Manager window.
  2991.  
  2992.           ----PPPP   This application  is  started  as  a  Presentation
  2993.                Manager application.
  2994.  
  2995.           ----CCCC   Use the OOOOSSSS////2222  command  processor  instead  of  the
  2996.  
  2997.  
  2998.  
  2999. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               46
  3000.  
  3001.  
  3002.  
  3003.  
  3004. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  3005.  
  3006.  
  3007.  
  3008.                shell.
  3009.  
  3010.           ----eeee ssssttttrrrriiiinnnngggg
  3011.                This option can be used multiple times on the com-
  3012.                mand  line  and  allows  the  user  to  excplicily
  3013.                specify the environment to be passed  to  the  new
  3014.                process.   When  this  option  is used, only those
  3015.                environment variables set up by the ----eeee options are
  3016.                set  in  the  new session's environment.  Only one
  3017.                environment  variable  can  be  assigned  per   ----eeee
  3018.                switch.   The  ssssttttrrrriiiinnnnggggs are in standard environment
  3019.                format (_n_a_m_e=_v_a_l_u_e).  This may of  particular  use
  3020.                under OOOOSSSS////2222 2.x when starting MMMMSSSSDDDDOOOOSSSS programs.
  3021.  
  3022.           ----cccc [ _v_i_l_s_n_a ]
  3023.                This option allows the user to configure the  size
  3024.                of  the  window  created  for the new session: _v -
  3025.                visible; _i - invisible; _l - maximise; _s  -  minim-
  3026.                ise; _n - no autoclose; or _a - autoclose.  Multiple
  3027.                selections can be made on one option.  Any  selec-
  3028.                tion removes any inappropriate previous selections
  3029.                (ie. _m_a_x_i_m_i_s_e removes any previous selected _m_i_n_i_m_-
  3030.                _i_s_e).  Multiple ----cccc options are not cummulative and
  3031.                only take the  values  selected  by  the  last  ----cccc
  3032.                option.  The default is window configuration is _n_o
  3033.                _a_u_t_o_c_l_o_s_e.
  3034.  
  3035.           ----AAAA sssseeeessssssssiiiioooonnnnIIIIdddd
  3036.                This option cannot be used with any  other  option
  3037.                and  allows the user to switch to another session,
  3038.                given by _s_e_s_s_i_o_n_I_D, which must be a child  session
  3039.                of the current session.
  3040.  
  3041.      sssswwwwaaaapppp [ _o_p_t_i_o_n_s ]
  3042.           This command (which is only  available  on  the  16-bit
  3043.           MS-DOS version) defines how the shell will handle swap-
  3044.           ping itself to reduce its  memory  requirements  whilst
  3045.           other programs execute.  The options are
  3046.  
  3047.           ooooffffffff  Disable swapping.  The  shell  remains  in  memory
  3048.                whilst the child is running and reduces the avail-
  3049.                able memory by about 200K (depending on  the  size
  3050.                of the environment and history).
  3051.  
  3052.           oooonnnn   Enable all devices.  The shell will  swap  out  to
  3053.                either  expanded  or  extended  memory or to disk,
  3054.                execute  the  command  and  then  swap  back   in.
  3055.                Whilest  swapped,  the shell reduces the available
  3056.                memory by about 3K.
  3057.  
  3058.           eeeexxxxppppaaaannnndddd
  3059.                Enable  swapping  to  Expanded  Memory.   The  EMS
  3060.  
  3061.  
  3062.  
  3063. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               47
  3064.  
  3065.  
  3066.  
  3067.  
  3068. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  3069.  
  3070.  
  3071.  
  3072.                driver must exist on your system for this to work.
  3073.  
  3074.           eeeexxxxtttteeeennnndddd [ _s_t_a_r_t _a_d_d_r_e_s_s ]
  3075.                Enable swapping to Extended Memory.  If  you  have
  3076.                an  XMS  driver on your system, the shell will use
  3077.                the XMS driver.  Otherwise, the BIOS Interrupt  15
  3078.                interface  is  used.   The  optional start address
  3079.                defines the based address in the  Extended  Memory
  3080.                at which point the shell writes its swap area when
  3081.                the BIOS interface is used.  The default  location
  3082.                is _0_x_1_0_0_0_0_0.
  3083.  
  3084.           ddddiiiisssskkkk Enable swapping to disk.  The shell creates a tem-
  3085.                porary  file  and  saves itself in it.  On comple-
  3086.                tion, the file is deleted.  This  is  the  slowest
  3087.                method of swapping.
  3088.  
  3089.                With no options, the current swapping options  are
  3090.                displayed.
  3091.      tttteeeesssstttt _e_x_p_r
  3092.      [[[[ _e_x_p_r ]]]]
  3093.           Evaluate conditional expressions.  TTTTeeeesssstttt  evaluates  the
  3094.           expression  _e_x_p_r  and,  if its value is true, returns a
  3095.           zero (true) exit status; otherwise, a non-zero  (false)
  3096.           exit  status  is returned; tttteeeesssstttt also returns a non-zero
  3097.           exit status if there are no arguments.  The  primitives
  3098.           are  the  same  as  for  the  [[[[[[[[ _e_x_p_r_e_s_s_i_o_n ]]]]]]]] command,
  3099.           except that -_a and -_o are not primitives, but are  used
  3100.           to  combine operators (see tttteeeesssstttt ((((1111))))).  -_a is the binary
  3101.           aaaannnndddd operator and -_o is the binary oooorrrr operator.
  3102.  
  3103.           Notice that all the operators and  flags  are  separate
  3104.           arguments  to  tttteeeesssstttt.   Notice also that parentheses are
  3105.           meaningful  to  the  shell  and,  therefore,  must   be
  3106.           escaped.
  3107.  
  3108.      ttttrrrraaaapppp [ -_l ] _a_r_g ] [ _S_i_g_n_a_l_N_u_m_b_e_r ] ...
  3109.           The command _a_r_g is to be read  and  executed  when  the
  3110.           shell  receives signal(s) _S_i_g_n_a_l_N_u_m_b_e_r.  (Note that _a_r_g
  3111.           is scanned once when the trap is set and once when  the
  3112.           trap is taken.)  Trap commands are executed in order of
  3113.           signal number.  Any attempt to set a trap on  a  signal
  3114.           that was ignored on entry to the current shell is inef-
  3115.           fective.
  3116.  
  3117.           If _a_r_g is absent all trap(s) _S_i_g_n_a_l_N_u_m_b_e_r are reset  to
  3118.           their  original values.  If _a_r_g is the null string this
  3119.           signal is ignored by the shell and by the  commands  it
  3120.           invokes.
  3121.  
  3122.           A potential point of  confusion  is  that  UUUUNNNNIIIIXXXX  signal
  3123.           numbers  are  different  from  MMMMSSSSDDDDOOOOSSSS  and  OOOOSSSS////2222  signal
  3124.  
  3125.  
  3126.  
  3127. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               48
  3128.  
  3129.  
  3130.  
  3131.  
  3132. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  3133.  
  3134.  
  3135.  
  3136.           numbers.   MMMMSSSSDDDDOOOOSSSS  and  OOOOSSSS////2222  signal  numbers  sometimes
  3137.           appear to differ between compilers.  If a numeric value
  3138.           is used, it is assumed to be a UUUUNNNNIIIIXXXX signal  number  and
  3139.           this  is  mapped  to  the appropriate MMMMSSSSDDDDOOOOSSSS/OOOOSSSS////2222 signal
  3140.           number.  If there is no mapping, a warning  message  is
  3141.           displayed.   If  the signal number is a signal name, it
  3142.           is translated into the  appropriate  MMMMSSSSDDDDOOOOSSSS/OOOOSSSS////2222  signal
  3143.           number.   The  list  of valid signal names is displayed
  3144.           using the -_l flag.
  3145.  
  3146.           If _S_i_g_n_a_l_N_u_m_b_e_r is DDDDEEEEBBBBUUUUGGGG  then  _a_r_g  will  be  executed
  3147.           after  each  command.  If _S_i_g_n_a_l_N_u_m_b_e_r is EEEERRRRRRRR, _a_r_g will
  3148.           be executed whenever a  command  has  a  non-zero  exit
  3149.           code.
  3150.  
  3151.           If _S_i_g_n_a_l_N_u_m_b_e_r is 0 or EEEEXXXXIIIITTTT and the trap statement  is
  3152.           executed inside the body of a function, the command _a_r_g
  3153.           is executed after the function completes.   If  _S_i_g_n_a_l_-
  3154.           _N_u_m_b_e_r  is  0  or EEEEXXXXIIIITTTT for a trap set outside any func-
  3155.           tion, the command _a_r_g is  executed  on  exit  from  the
  3156.           shell.
  3157.  
  3158.           The ttttrrrraaaapppp command with no arguments  prints  a  list  of
  3159.           commands associated with each signal number.
  3160.  
  3161.      ttttrrrruuuueeee No effect; the command does nothing.  A zero exit  code
  3162.           is returned.
  3163.  
  3164.      ttttyyyyppppeeeesssseeeetttt [ ----HHHHLLLLRRRRZZZZffffiiiillllpppprrrrttttuuuuxxxx[nnnn] [ nnnnaaaammmmeeee[ ====vvvvaaaalllluuuueeee ] ] ... ]
  3165.           When invoked inside a function, a new instance  of  the
  3166.           parameter  name  is  created.   The parameter value and
  3167.           type are restored when  the  function  completes.   The
  3168.           following list of attributes may be specified:
  3169.  
  3170.           ----HHHH   This flag provides UUUUNNNNIIIIXXXX to host-name file  mapping
  3171.                on non-UUUUNNNNIIIIXXXX machines (see mmmmssssddddoooossss command).
  3172.  
  3173.           ----LLLL   Left justify and remove leading blanks from value.
  3174.                If  nnnn  is  non-zero  it  defines  the width of the
  3175.                field, otherwise it is determined by the width  of
  3176.                the value of first assignment.  When the parameter
  3177.                is assigned to, it is filled  on  the  right  with
  3178.                blanks or truncated, if necessary, to fit into the
  3179.                field.  Leading zeros are removed if the  ----ZZZZ  flag
  3180.                is also set.  The ----RRRR flag is turned off.
  3181.  
  3182.           ----RRRR   Right justify and fill with leading blanks.  If  nnnn
  3183.                is  non-zero,  it  defines the width of the field,
  3184.                otherwise it is determined by  the  width  of  the
  3185.                value  of  first  assignment.   The  field is left
  3186.                filled with blanks or truncated from  the  end  if
  3187.                the  parameter  is  reassigned.   The  ----LLLL  flag is
  3188.  
  3189.  
  3190.  
  3191. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               49
  3192.  
  3193.  
  3194.  
  3195.  
  3196. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  3197.  
  3198.  
  3199.  
  3200.                turned off.
  3201.  
  3202.           ----ZZZZ   Right justify and fill with leading zeros  if  the
  3203.                first  non-blank  character  is a digit and the ----LLLL
  3204.                flag has not been  set.   If  nnnn  is  non-zero,  it
  3205.                defines  the  width  of the field, otherwise it is
  3206.                determined by the width  of  the  value  of  first
  3207.                assignment.
  3208.  
  3209.           ----ffff   The names refer  to  function  names  rather  than
  3210.                parameter  names.   No assignments can be made and
  3211.                the only other valid flags are ----tttt, which turns  on
  3212.                execution  tracing  for  this  function and ----xxxx, to
  3213.                allow the function  to  remain  in  effect  across
  3214.                shell  procedures  executed  in  the  same process
  3215.                environment.
  3216.  
  3217.           ----iiii   Parameter is an integer.   This  makes  arithmetic
  3218.                faster.   If  nnnn  is non-zero it defines the output
  3219.                arithmetic base, otherwise  the  first  assignment
  3220.                determines the output base.
  3221.  
  3222.           ----llll   All upper-case characters converted to lower-case.
  3223.                The upper-case flag, ----uuuu is turned off.
  3224.  
  3225.           ----pppp   The output of this command,  if  any,  is  written
  3226.                onto  the two-way pipe.  TTTThhhhiiiissss ooooppppttttiiiioooonnnn hhhhaaaassss nnnnoooo eeeeffffffffeeeecccctttt
  3227.                iiiinnnn tttthhhheeee SSSShhhheeeellllllll.
  3228.  
  3229.           ----rrrr   The given names  are  marked  readonly  and  these
  3230.                names cannot be changed by subsequent assignment.
  3231.  
  3232.           ----tttt   Tags the named parameters. Tags are user definable
  3233.                and have no special meaning to the shell.
  3234.  
  3235.           ----uuuu   All lower-case characters are converted to  upper-
  3236.                case  characters.   The  lower-case  flag,  ----llll  is
  3237.                turned off.
  3238.  
  3239.           ----xxxx   The given names are marked for automatic export to
  3240.                the environment of subsequently-executed commands.
  3241.  
  3242.           Using + rather than - causes these flags to  be  turned
  3243.           off.   If  no  name  arguments  are given but flags are
  3244.           specified, a list of names (and optionally the  values)
  3245.           of  the  parameters  which  have  these  flags  set  is
  3246.           printed.  (Using + rather than - keeps the values to be
  3247.           printed.)   If  no names and flags are given, the names
  3248.           and attributes of all parameters are printed.
  3249.  
  3250.      uuuummmmaaaasssskkkk [ _n_n_n ]
  3251.           The  user  file-creation  mask  is  set  to  _n_n_n   (see
  3252.  
  3253.  
  3254.  
  3255. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               50
  3256.  
  3257.  
  3258.  
  3259.  
  3260. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  3261.  
  3262.  
  3263.  
  3264.           _u_m_a_s_k(2)).  If _n_n_n is omitted, the current value of the
  3265.           mask is printed.
  3266.  
  3267.      uuuunnnnaaaalllliiiiaaaassss _n_a_m_e ...
  3268.           The aliases given by the list of _n_a_m_es are removed from
  3269.           the alias list.
  3270.  
  3271.      uuuunnnnffffuuuunnnnccccttttiiiioooonnnn _n_a_m_e ...
  3272.           For each _n_a_m_e, remove the corresponding function.
  3273.  
  3274.      uuuunnnnsssseeeetttt [ ----ffff ] _n_a_m_e ...
  3275.           The parameters given by the list  of  _n_a_m_es  are  unas-
  3276.           signed  (their  values and attributes are erased).  The
  3277.           following variables, as well as those with a  read-only
  3278.           attribute cannot be unset: PPPPAAAATTTTHHHH, PPPPSSSS1111, PPPPSSSS2222, and IIIIFFFFSSSS.  If
  3279.           the -f flag is set, then the names  refer  to  function
  3280.           names and the functions are removed.
  3281.  
  3282.           Unsetting LLLLIIIINNNNEEEENNNNOOOO, MMMMAAAAIIIILLLLCCCCHHHHEEEECCCCKKKK,  OOOOPPPPTTTTAAAARRRRGGGG,  OOOOPPPPTTTTIIIINNNNDDDD,  RRRRAAAANNNNDDDDOOOOMMMM,
  3283.           SSSSEEEECCCCOOOONNNNDDDDSSSS,  and  ____  removes their special meaning even if
  3284.           they are subsequently assigned to.
  3285.  
  3286.      vvvveeeerrrr  Display the current version of the shell.
  3287.  
  3288.      wwwwaaaaiiiitttt [ jjjjoooobbbb ]
  3289.           This command (which is only available under OOOOSSSS////2222) waits
  3290.           for  the  specified  _j_o_b  to  terminate  and report its
  3291.           status.  This status becomes the return  code  for  the
  3292.           wwwwaaaaiiiitttt  command.  If _j_o_b is not given, wwwwaaaaiiiitttt waits for all
  3293.           currently active child  processes  to  terminate.   The
  3294.           termination  status  returned  is that of the last pro-
  3295.           cess.  See JJJJoooobbbbssss for a description of the  format  of  a
  3296.           _j_o_b.
  3297.  
  3298.      wwwwhhhheeeennnncccceeee [ ----ppppvvvv ] [ _n_a_m_e ... ]
  3299.      ttttyyyyppppeeee [ ----pppp ] [ _n_a_m_e ... ]
  3300.           For each _n_a_m_e  specified,  indicate  how  it  would  be
  3301.           interpreted  if used as a command name.  Note that ttttyyyyppppeeee
  3302.           is a shorthand for wwwwhhhheeeennnncccceeee ----vvvv.
  3303.  
  3304.           ----pppp   Does a path search for _n_a_m_e even if the name is an
  3305.                alias, a function, or a reserved word.
  3306.  
  3307.           ----vvvv   Produces a more verbose report.
  3308.  
  3309.   IIIInnnnvvvvooooccccaaaattttiiiioooonnnn
  3310.      If the shell is invoked through _e_x_e_c(2) and the first  char-
  3311.      acter of argument zero is ---- or the ----0000(zero) switch is in the
  3312.      invokation  line,   commands   are   initially   read   from
  3313.      ////eeeettttcccc////pppprrrrooooffffiiiilllleeee  (the  extensions  ....sssshhhh or ....kkkksssshhhh may be used) and
  3314.      from $$$$HHHHOOOOMMMMEEEE////pppprrrrooooffffiiiilllleeee (the extensions rrrreeeeaaaadddd ffffrrrroooommmm tttthhhheeee ffffiiiilllleeee  nnnnaaaammmmeeeedddd
  3315.      bbbbyyyy  ppppeeeerrrrffffoooorrrrmmmmiiiinnnngggg  ppppaaaarrrraaaammmmeeeetttteeeerrrr  ssssuuuubbbbssssttttiiiittttuuuuttttiiiioooonnnn  oooonnnn tttthhhheeee vvvvaaaalllluuuueeee ooooffff tttthhhheeee
  3316.  
  3317.  
  3318.  
  3319. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               51
  3320.  
  3321.  
  3322.  
  3323.  
  3324. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  3325.  
  3326.  
  3327.  
  3328.      eeeennnnvvvviiiirrrroooonnnnmmmmeeeennnntttt ppppaaaarrrraaaammmmeeeetttteeeerrrr EEEENNNNVVVV if the file  exists.   Thereafter,
  3329.      commands are read as described below, which is also the case
  3330.      when the shell is invoked as ////bbbbiiiinnnn////sssshhhh.  The flags  below  are
  3331.      interpreted  by  the  shell  on  invocation  only; Note that
  3332.      unless the ----cccc or ----ssss flag is specified, the first argument is
  3333.      assumed  to  be  the name of a file containing commands, and
  3334.      the remaining arguments are passed as positional  parameters
  3335.      to that command file:
  3336.  
  3337.      ----cccc string If the ----cccc flag is present commands are  read  from
  3338.                _s_t_r_i_n_g.
  3339.  
  3340.      ----ssss        If the ----ssss flag  is  present  or  if  no  arguments
  3341.                remain  commands are read from the standard input.
  3342.                Any remaining  arguments  specify  the  positional
  3343.                parameters.  Shell output (except for _S_p_e_c_i_a_l _C_o_m_-
  3344.                _m_a_n_d_s) is written to file descriptor 2.
  3345.  
  3346.      ----iiii        If the ----iiii flag is present or if  the  shell  input
  3347.                and  output are attached to a terminal, this shell
  3348.                is _i_n_t_e_r_a_c_t_i_v_e.  In this case, the TERMINATE  sig-
  3349.                nal  is ignored and the INTERRUPT signal is caught
  3350.                and ignored.  In all cases,  the  QUIT  signal  is
  3351.                ignored by the shell.
  3352.  
  3353.      ----rrrr        If the ----rrrr flag is present, the  shell  is  a  res-
  3354.                tricted shell.
  3355.  
  3356.      ----0000(zero)  If the ----0000(zero) flag is present, this has the same
  3357.                effect  as starting the shell with the first char-
  3358.                acter of argument zero as a ---- (see above).
  3359.  
  3360.      ----PPPP        This option enables real pipes  under  OOOOSSSS////2222.   See
  3361.                LLLLIIIIMMMMIIIITTTTAAAATTTTIIIIOOOONNNNSSSS.
  3362.  
  3363.      ----RRRR        If the ----RRRR flag is present, the shell is  the  _r_o_o_t
  3364.                shell  and cannot be terminated using exit.  Under
  3365.                MMMMSSSSDDDDOOOOSSSS, the system must be re-booted.  Under  OOOOSSSS////2222,
  3366.                the  shell  must be killed by an external program.
  3367.                In addition, the initialisation file is  not  read
  3368.                until  just before the first keyboard input.  This
  3369.                allows the location of the file to be  changed  by
  3370.                changing  the value of the SHELL environment vari-
  3371.                able.
  3372.  
  3373.      The remaining flags and arguments are  described  under  the
  3374.      sssseeeetttt command above.
  3375.  
  3376.   RRRRsssshhhh OOOOnnnnllllyyyy
  3377.      _R_s_h is used to set up login names and execution environments
  3378.      whose  capabilities  are  more  controlled than those of the
  3379.      standard shell.  The actions of _r_s_h are identical  to  those
  3380.  
  3381.  
  3382.  
  3383. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               52
  3384.  
  3385.  
  3386.  
  3387.  
  3388. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  3389.  
  3390.  
  3391.  
  3392.      of _s_h, except that the following are disallowed:
  3393.  
  3394.           Changing directory (see _c_d(1)),
  3395.           Setting the value of SSSSHHHHEEEELLLLLLLL, EEEENNNNVVVV, or $$$$PPPPAAAATTTTHHHH,
  3396.           Specifying path or command names containing ////,
  3397.           Redirecting output (>>>> and >>>>>>>>).
  3398.  
  3399.      The restrictions above are enforced after  pppprrrrooooffffiiiilllleeee  and  the
  3400.      EEEENNNNVVVV files are interpreted.
  3401.  
  3402.      When a command to be executed is found to be  a  shell  pro-
  3403.      cedure,  _r_s_h invokes _s_h to execute it.  Thus, it is possible
  3404.      to provide to the end-user shell procedures that have access
  3405.      to  the  full  power of the standard shell, while imposing a
  3406.      limited menu of commands; this scheme assumes that the  end-
  3407.      user does not have write and execute permissions in the same
  3408.      directory.
  3409.  
  3410.      The net effect of these rules is that the writer of the pppprrrroooo----
  3411.      ffffiiiilllleeee  has  complete control over user actions, by performing
  3412.      guaranteed  setup  actions  and  leaving  the  user  in   an
  3413.      appropriate directory (probably _n_o_t the login directory).
  3414.  
  3415.      The system administrator often sets up a directory  of  com-
  3416.      mands  (i.e.,  ////uuuussssrrrr////rrrrbbbbiiiinnnn) that can be safely invoked by _r_s_h.
  3417.      Some systems also provide a restricted editor _r_e_d.
  3418.  
  3419. EEEEXXXXIIIITTTT SSSSTTTTAAAATTTTUUUUSSSS
  3420.      Errors detected by the shell, such as syntax  errors,  cause
  3421.      the shell to return a non-zero exit status.  If the shell is
  3422.      being used non-interactively execution of the shell file  is
  3423.      abandoned.   Otherwise, the shell returns the exit status of
  3424.      the last command executed (see also the eeeexxxxiiiitttt command above).
  3425.  
  3426. FFFFIIIILLLLEEEESSSS
  3427.      /etc/profile
  3428.      $HOME/profile
  3429.      $HOME/history.sh.
  3430.      $TMP/sh*.tmp
  3431.      ??/sh.ini
  3432.  
  3433. CCCCRRRRIIIITTTTIIIICCCCAAAALLLL EEEERRRRRRRROOOORRRRSSSS
  3434.      The Shell provide a Critical Error  Handler  (Interrupt  24)
  3435.      similar  to  the standard MMMMSSSSDDDDOOOOSSSS handler.  In addition to the
  3436.      standard message, the handler  also  displays  the  Extended
  3437.      Error Code information in hexadecimal.
  3438.  
  3439. LLLLIIIIMMMMIIIITTTTAAAATTTTIIIIOOOONNNNSSSS
  3440.      Under MS-DOS, any TSR  (Terminate  Stay  Resident)  programs
  3441.      must be loaded before loading _S_h as the shell will overwrite
  3442.      the TSR when it reloads itself after swapping out.
  3443.  
  3444.  
  3445.  
  3446.  
  3447. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               53
  3448.  
  3449.  
  3450.  
  3451.  
  3452. SH(1L)            MISC. REFERENCE MANUAL PAGES             SH(1L)
  3453.  
  3454.  
  3455.  
  3456.      The shell checks for valid DOS filenames (single dot, not at
  3457.      the beginning).  Invalid dots are converted to ~~~~.  A warning
  3458.      message is displayed if the shell detects  an  invalid  file
  3459.      name.
  3460.  
  3461.      Under OOOOSSSS////2222, asynchronous commands are supported to a degree.
  3462.      However,  this  is very limited because of the nature of the
  3463.      forking commands under OOOOSSSS////2222 which does not  match  the  UUUUNNNNIIIIXXXX
  3464.      model.   This  difference  has  also meant that pipes (as in
  3465.      MS-DOS) are implemented as files and not  OOOOSSSS////2222  pipes.   For
  3466.      more details, see the source code.
  3467.  
  3468.      However, real OOOOSSSS////2222 pipes can be used with  care  for  simple
  3469.      pipelines  which  do  not create sub-shells or assume that a
  3470.      real child shell is  created  because  the  shell  does  not
  3471.      create  child,  it simulates their creating in the same pro-
  3472.      cess.  This is because there is no fork under OOOOSSSS////2222.  See the
  3473.      sssseeeetttt command on how to enable/disable real pipes.
  3474.  
  3475. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  3476.      cd(1), test(1), umask(1),
  3477.      exec(2),  pipe(2),  signal(2),  umask(2),  strtol(3),   pro-
  3478.      file(4),  environ(5) in the _U_N_I_X _S_y_s_t_e_m _P_r_o_g_r_a_m_m_e_r _R_e_f_e_r_e_n_c_e
  3479.      _M_a_n_u_a_l.
  3480.      COMMAND(1) and SUBST(1) in the _M_S_D_O_S _R_e_f_e_r_e_n_c_e _G_u_i_d_e.
  3481.      CMD(1) in the _O_S/_2 Reference Guide.
  3482.      DosStartSession(2) in the  _O_S/_2  _C_o_n_t_r_o_l  _P_r_o_g_r_a_m  _R_e_f_e_r_e_n_c_e
  3483.      _M_a_n_u_a_l.
  3484.  
  3485. AAAACCCCKKKKNNNNOOOOWWWWLLLLEEEEDDDDGGGGEEEEMMMMEEEENNNNTTTTSSSS
  3486.      This program is based  on  ideas,  code  or  parts  of  code
  3487.      developed by:
  3488.  
  3489.      David Korn and Steve Bourne (the original ideas)
  3490.      Charles Forsyth (the original source  for  the  MINIX  Shell
  3491.      program)
  3492.      Erik Baalbergen (the code for the test function)
  3493.      Paul Falstad (the code for the maths functions)
  3494.      Simon J. Gerraty (the code for the new lexical analyser  and
  3495.      the VI/EMACS edit functions).
  3496.  
  3497.      In addition, a very large number of people (too many to men-
  3498.      tion)  who  have  been involved in testing and debugging the
  3499.      program.
  3500.  
  3501.  
  3502.  
  3503.  
  3504.  
  3505.  
  3506.  
  3507.  
  3508.  
  3509.  
  3510.  
  3511. MS-DOS - OS/2 Version 2.2Last change: Data Logic Limited               54
  3512.  
  3513.