home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-04-14 | 131.4 KB | 2,234 lines |
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- NNNNAAAAMMMMEEEE
- sh, rsh - shell, the standard/restricted command programming language
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- sssshhhh [ ----aaaacccceeeeffffhhhhiiiikkkknnnnmmmmrrrrssssttttuuuuvvvvxxxx0000RRRR ] [ args ]
- rrrrsssshhhh [ ----aaaacccceeeeffffhhhhiiiikkkknnnnmmmmrrrrssssttttuuuuvvvvxxxx0000RRRR ] [ args ]
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- _S_h is a command programming language that executes commands read from
- a terminal or a file. _R_s_h is a restricted version of the standard
- command interpreter _s_h; it is used to set up login names and execution
- environments whose capabilities are more controlled than those of the
- standard shell. See _I_n_v_o_c_a_t_i_o_n below for the meaning of arguments to
- the shell.
-
- DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss
- A _b_l_a_n_k is a tab or a space. A _n_a_m_e is a sequence of letters, digits,
- or underscores beginning with a letter or underscore. A _p_a_r_a_m_e_t_e_r is
- a name, a digit, or any of the characters ****, @@@@, ####, ????, ----, $$$$, and !!!!.
-
- CCCCoooommmmmmmmaaaannnnddddssss
- 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 by _b_l_a_n_k_s.
- The first word specifies the name of the command to be executed.
- Except as specified below, the remaining words are passed as arguments
- to the invoked command. The command name is passed as argument 0 (see
- _e_x_e_c(2)). The _v_a_l_u_e of a simple-command is its exit status if it
- terminates normally, or (octal) 200+_s_t_a_t_u_s if it terminates abnormally
- (see _s_i_g_n_a_l(2) for a list of status values).
-
- 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 by |||| (or,
- for historical compatibility, by ^^^^). The standard output of each
- command but the last is connected by a _p_i_p_e(2) to the standard input
- of the next command. Each command is run as a separate process; the
- shell waits for the last command to terminate. The exit status of a
- pipeline is the exit status of the last command.
-
- A _l_i_s_t is a sequence of one or more pipelines separated by ;;;;, &&&& (OS/2
- only), &&&&&&&&, or ||||||||, and optionally terminated by ;;;; or &&&& (OS/2 only). Of
- these four symbols, ;;;; and &&&& have equal precedence, which is lower
- precedence than that of &&&&&&&& and ||||||||. The symbols &&&&&&&& and |||||||| also have
- equal precedence. A semicolon (;;;;) causes sequential execution of the
- preceding pipeline; an ampersand (&&&&) causes asynchronous execution of
- the preceding pipeline (i.e., the shell does not wait for that command
- to finish. This option is only available under OS/2 and is restricted
- to single commands and not pipelines because of the differences in the
- UNIX and OS/2 process models). The symbol &&&&&&&& (||||||||) causes the _l_i_s_t
- following it to be executed only if the preceding pipeline returns a
- zero (non-zero) exit status. An arbitrary number of new-lines may
- appear in a _l_i_s_t, instead of semicolons, to delimit commands.
-
-
-
-
- - 1 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- A _c_o_m_m_a_n_d is either a simple-command or one of the following. Unless
- otherwise stated, the value returned by a command is that of the last
- simple-command executed in the command.
-
- ffffoooorrrr _n_a_m_e [ iiiinnnn _w_o_r_d ... ] ddddoooo _l_i_s_t ddddoooonnnneeee
- Each time a ffffoooorrrr command is executed, _n_a_m_e is set to the next _w_o_r_d
- taken from the iiiinnnn _w_o_r_d list. If iiiinnnn _w_o_r_d ... is omitted, then
- the ffffoooorrrr command executes the ddddoooo _l_i_s_t once for each positional
- parameter that is set (see _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 there are no more words in the list.
-
- sssseeeelllleeeecccctttt _n_a_m_e [ iiiinnnn _w_o_r_d ... ] ddddoooo _l_i_s_t ddddoooonnnneeee
- A sssseeeelllleeeecccctttt command prints on standard error (file descriptor 2),
- the set of _w_o_r_ds, each preceded by a number. If iiiinnnn _w_o_r_d ... is
- omitted, then the positional 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 below). The PPPPSSSS3333 prompt is printed and a
- line is read from the standard input. If this line consists of
- the number of one of the listed _w_o_r_ds, then the value of the
- parameter _n_a_m_e is set to the _w_o_r_d corresponding to this number.
- If this line is empty the selection list is printed again.
- Otherwise the value of the parameter _n_a_m_e is set to null. The
- contents of the line read from standard input is saved in the
- parameter RRRREEEEPPPPLLLLYYYY. The list is executed for each selection until a
- break or end-of-file is encountered.
-
- 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
- A ccccaaaasssseeee command executes the _l_i_s_t associated with the first
- _p_a_t_t_e_r_n that matches _w_o_r_d. The form of the patterns is the same
- as that used for file-name generation (see _F_i_l_e _N_a_m_e _G_e_n_e_r_a_t_i_o_n)
- except that a slash, a leading dot, or a dot immediately
- following a slash need not be matched explicitly, and the match
- is case sensitive.
-
- 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
- The _l_i_s_t following iiiiffff is executed and, if it returns a zero exit
- status, the _l_i_s_t following the first tttthhhheeeennnn is executed.
- Otherwise, the _l_i_s_t following eeeelllliiiiffff is executed and, if its value
- is zero, the _l_i_s_t following the next tttthhhheeeennnn is executed. Failing
- that, the eeeellllsssseeee _l_i_s_t is executed. If no eeeellllsssseeee _l_i_s_t or tttthhhheeeennnn _l_i_s_t is
- executed, then the iiiiffff command returns a zero exit status.
-
- wwwwhhhhiiiilllleeee _l_i_s_t ddddoooo _l_i_s_t ddddoooonnnneeee
- A wwwwhhhhiiiilllleeee command repeatedly executes the wwwwhhhhiiiilllleeee _l_i_s_t and, if the
- exit status of the last command in the list is zero, executes the
- ddddoooo _l_i_s_t; otherwise the loop terminates. If no commands in the ddddoooo
- _l_i_s_t are executed, then the wwwwhhhhiiiilllleeee command returns a zero exit
- status; uuuunnnnttttiiiillll may be used in place of wwwwhhhhiiiilllleeee to negate the loop
- termination test.
-
- ((((_l_i_s_t))))
- Execute _l_i_s_t in a sub-shell. The shell creates a new environment
-
-
- - 2 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- in which to execute the _l_i_s_t, but does not fork a sub-shell as a
- Unix system would. The original environment is restored on
- completion.
-
- {{{{ _l_i_s_t;;;; }}}}
- _l_i_s_t is simply executed.
-
- [[[[[[[[ _e_x_p_r_e_s_s_i_o_n ]]]]]]]]
- Evaluates expression and returns a zero exit status when
- expression is true. See CCCCoooonnnnddddiiiittttiiiioooonnnnaaaallll EEEExxxxpppprrrreeeessssssssiiiioooonnnnssss below, for a
- description of expression. Note that [[[[[[[[ and ]]]]]]]] are keywords and
- require blanks between them and expression.
-
- ffffuuuunnnnccccttttiiiioooonnnn _n_a_m_e (((()))) {{{{ _l_i_s_t;;;; }}}}
-
- _n_a_m_e (((()))) {{{{ _l_i_s_t;;;; }}}}
- Define a function which is referenced by _n_a_m_e. The body of the
- function is the _l_i_s_t of commands between {{{{ and }}}}. Execution of
- functions is described below (see _E_x_e_c_u_t_i_o_n).
-
- The following words are only recognized as the first word of a command
- and when not quoted:
-
- iiiiffff tttthhhheeeennnn eeeellllsssseeee eeeelllliiiiffff ffffiiii ccccaaaasssseeee eeeessssaaaacccc ffffoooorrrr wwwwhhhhiiiilllleeee uuuunnnnttttiiiillll ddddoooo ddddoooonnnneeee {{{{ }}}} [[[[[[[[ ]]]]]]]]
-
- CCCCoooommmmmmmmeeeennnnttttssss
- A word beginning with #### causes that word and all the following
- characters up to a new-line to be ignored.
-
- AAAAlllliiiiaaaassssiiiinnnngggg
- The first word of each command is replaced by the text of an alias if
- an alias for this word has been defined. The alias name must a valid
- identifier. The replacement string can contain any valid Shell script
- including the metacharacters listed above. The first word of each
- command of the replaced text will not be tested for additional
- aliases. If the last character of the alias value is a blank then the
- word following the alias will also be checked for alias substitution.
- Aliases can be used to redefine special builtin commands but cannot be
- used to redefine the keywords listed above. Aliases can be created
- and listed with the aaaalllliiiiaaaassss command and can be removed with the uuuunnnnaaaalllliiiiaaaassss
- command.
-
- Aliasing is performed when scripts are read, not while they are
- executed. Therefore, for an alias to take effect the alias command
- has to be executed before the command which references the alias is
- read.
-
- Aliases are frequently used as a short hand for full path names. An
- option to the aliasing facility allows the value of the alias to be
- automatically set to the full pathname of the corresponding command.
- These aliases are called tracked aliases. The value of a tracked
-
-
- - 3 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- alias is defined the first time the corresponding command is looked up
- and becomes undefined each time the PATH variable is reset. These
- aliases remain tracked so that the next subsequent reference will
- redefine the value.
-
- CCCCoooonnnnddddiiiittttiiiioooonnnnaaaallll EEEExxxxpppprrrreeeessssssssiiiioooonnnnssss
- A conditional expression is used with the [[[[[[[[ compound command to test
- attributes of files and to compare strings. Word splitting and file
- name generation are not performed on the words between [[[[[[[[ and ]]]]]]]].
- Each expression can be constructed from one or more of the following
- unary or binary expressions:
-
- ----aaaa _f_i_l_e True if _f_i_l_e exists.
-
- ----bbbb _f_i_l_e True if _f_i_l_e exists and is a block special file.
-
- ----cccc _f_i_l_e True if _f_i_l_e exists and is a character special file.
-
- ----dddd _f_i_l_e True if _f_i_l_e exists and is a directory.
-
- ----ffff _f_i_l_e True if _f_i_l_e exists and is a regular file.
-
- ----gggg _f_i_l_e True if _f_i_l_e exists and has its setgid bit set.
-
- ----hhhh _f_i_l_e True if _f_i_l_e exists and is a symbolic link.
-
- ----kkkk _f_i_l_e True if _f_i_l_e exists and has its sticky bit set.
-
- ----nnnn _s_t_r_i_n_g True if the length of _s_t_r_i_n_g is non-zero.
-
- ----oooo _o_p_t_i_o_n True if the _o_p_t_i_o_n named is on.
-
- ----pppp _f_i_l_e True if _f_i_l_e exists and is a fifo special file or a
- pipe.
-
- ----rrrr _f_i_l_e True if _f_i_l_e exists and is readable.
-
- ----ssss _f_i_l_e True if _f_i_l_e exists and has a size greater than zero.
-
- ----tttt [ _f_i_l_d_e_s ]
- True if the open file whose file descriptor number is
- _f_i_l_d_e_s (1 by default) is associated with a terminal
- device.
-
- ----uuuu _f_i_l_e True if _f_i_l_e exists and has its setuid bit set.
-
- ----wwww _f_i_l_e True if _f_i_l_e exists and is writable.
-
- ----xxxx _f_i_l_e True if _f_i_l_e exists and is executable. If _f_i_l_e
- exists and is a directory, then the current process
- has permission to search in the directory.
-
-
- - 4 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- ----zzzz _s_t_r_i_n_g True if the length of _s_t_r_i_n_g is zero.
-
- ----LLLL _f_i_l_e True if _f_i_l_e exists and is a symbolic link.
-
- ----OOOO _f_i_l_e True if _f_i_l_e exists and is owned by the effective
- user id of this process.
-
- ----GGGG _f_i_l_e True if _f_i_l_e exists and is owned by the effective
- user group of this process.
-
- ----SSSS _f_i_l_e True if _f_i_l_e exists and is a socket.
-
- _f_i_l_e_1 ----nnnntttt _f_i_l_e_2
- True if file1 is newer than file2. True if _f_i_l_e_1
- exists and is newer than _f_i_l_e_2.
-
- _f_i_l_e_1 ----ooootttt _f_i_l_e_2
- True if _f_i_l_e_1 exists and is older than _f_i_l_e_2.
-
- _f_i_l_e_1 ----eeeeffff _f_i_l_e_2
- True if _f_i_l_e_1 and _f_i_l_e_2 and refer to the same file.
-
- _s_1 ==== _s_2 True if strings _s_1 and _s_2 are identical.
-
- _s_1 !!!!==== _s_2 True if strings _s_1 and _s_2 are _n_o_t identical.
-
- _s_1 <<<< _s_2 True if string _s_1 comes before _s_2 are based on the
- ASCII value of their characters.
-
- _s_1 >>>> _s_2 True if string _s_1 comes after _s_2 are based on the
- ASCII value of their characters.
-
- _n_1 ----eeeeqqqq _n_2 True if _n_1 is equal to _n_2.
-
- _n_1 ----nnnneeee _n_2 True if _n_1 is not equal to _n_2.
-
- _n_1 ----lllltttt _n_2 True if _n_1 is less than to _n_2.
-
- _n_1 ----ggggtttt _n_2 True if _n_1 is greater than to _n_2.
-
- _n_1 ----lllleeee _n_2 True if _n_1 is less than or equal to _n_2.
-
- _n_1 ----ggggeeee _n_2 True if _n_1 is greater than or equal to _n_2.
-
- Not all of the above have meaning under MSDOS or OS/2. In such cases,
- the appropriate value is set (_f_a_l_s_e, except for ----OOOO and ----GGGG).
-
- A compound expression can be constructed from these primitives by
- using any of the following, listed in decreasing order of precedence.
-
-
-
-
- - 5 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- (((( _e_x_p_r ))))
- True, if _e_x_p_r is true. Used to group expressions.
-
- !!!! _e_x_p_r
- True, if _e_x_p_r is false.
-
- _e_x_p_r_1 &&&&&&&& _e_x_p_r_2
- True, if _e_x_p_r_1 and _e_x_p_r_2 are both true.
-
- _e_x_p_r_1 |||||||| _e_x_p_r_2
- True, if _e_x_p_r_1 or _e_x_p_r_2 is true.
-
- TTTTiiiillllddddeeee SSSSuuuubbbbssssttttiiiittttuuuuttttiiiioooonnnn
- Each word is checked to see if it begins with an unquoted~~~~. If it is,
- the ~~~~ is replaced by the value of the HHHHOOOOMMMMEEEE parameter. A ~~~~ followed by
- a ++++ or ---- is replaced by the value of the parameter PPPPWWWWDDDD and OOOOLLLLDDDDPPPPWWWWDDDD
- respectively.
-
- CCCCoooommmmmmmmaaaannnndddd SSSSuuuubbbbssssttttiiiittttuuuuttttiiiioooonnnn
- The standard output from a command enclosed in parenthesis preceded by
- a dollar sign ($$$$(((())))), or in a pair of grave accents (````````) may be used as
- part or all of a word; trailing new-lines are removed. The command
- substitution $$$$((((ccccaaaatttt _f_i_l_e)))) can be replaced by the equivalent but faster
- $$$$((((<<<<_f_i_l_e)))).
-
- PPPPaaaarrrraaaammmmeeeetttteeeerrrr SSSSuuuubbbbssssttttiiiittttuuuuttttiiiioooonnnn
- The character $$$$ is used to introduce substitutable _p_a_r_a_m_e_t_e_r_s. There
- are two types of parameters, positional and keyword. If _p_a_r_a_m_e_t_e_r is
- a digit, it is a positional parameter. Positional parameters may be
- assigned values by sssseeeetttt. Keyword parameters (also known as variables)
- may be assigned values by writing:
-
- _n_a_m_e = _v_a_l_u_e [ _n_a_m_e = _v_a_l_u_e ] ...
-
- Pattern-matching is not performed on _v_a_l_u_e. There cannot be a
- function and a variable with the same _n_a_m_e.
-
- Alternatively, named parameters can be assigned values and attributes
- by using the typeset special command.
-
- $$$${{{{_p_a_r_a_m_e_t_e_r}}}}
- The value, if any, of the _p_a_r_a_m_e_t_e_r is substituted. The braces
- are required only when _p_a_r_a_m_e_t_e_r is followed by a letter, digit,
- or underscore that is not to be interpreted as part of its name.
- If _p_a_r_a_m_e_t_e_r is **** or @@@@, all the positional parameters, starting
- with $$$$1111, are substituted (separated by spaces). Parameter $$$$0000 is
- set from argument zero when the shell is invoked.
-
- $$$${{{{####_p_a_r_a_m_e_t_e_r}}}}
- If _p_a_r_a_m_e_t_e_r is **** or @@@@, the number of positional parameters is
- substituted. Otherwise, the length of the value of the _p_a_r_a_m_e_t_e_r
-
-
- - 6 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- is substituted.
-
- $$$${{{{_p_a_r_a_m_e_t_e_r::::----_w_o_r_d}}}}
- If _p_a_r_a_m_e_t_e_r is set and is non-null, substitute its value;
- otherwise substitute _w_o_r_d.
-
- $$$${{{{_p_a_r_a_m_e_t_e_r::::====_w_o_r_d}}}}
- If _p_a_r_a_m_e_t_e_r is not set or is null set it to _w_o_r_d; the value of
- the parameter is substituted. Positional parameters may not be
- assigned to in this way.
-
- $$$${{{{_p_a_r_a_m_e_t_e_r::::????_w_o_r_d}}}}
- If _p_a_r_a_m_e_t_e_r is set and is non-null, substitute its value;
- otherwise, print _w_o_r_d and exit from the shell. If _w_o_r_d is
- omitted, the message ``parameter null or not set'' is printed.
-
- $$$${{{{_p_a_r_a_m_e_t_e_r::::++++_w_o_r_d}}}}
- If _p_a_r_a_m_e_t_e_r is set and is non-null, substitute _w_o_r_d; otherwise
- substitute nothing.
-
- $$$${{{{_p_a_r_a_m_e_t_e_r####_p_a_t_t_e_r_n}}}}
- $$$${{{{_p_a_r_a_m_e_t_e_r########_p_a_t_t_e_r_n}}}} If the Shell _p_a_t_t_e_r_n matches the beginning
- of the value of _p_a_r_a_m_e_t_e_r, then the value of this substitution is
- the value of the _p_a_r_a_m_e_t_e_r with the matched portion deleted;
- otherwise the value of this _p_a_r_a_m_e_t_e_r is substituted. In the
- first form the smallest matching _p_a_t_t_e_r_n is deleted and in the
- latter form the largest matching _p_a_t_t_e_r_n is deleted.
-
- $$$${{{{_p_a_r_a_m_e_t_e_r%%%%_p_a_t_t_e_r_n}}}}
- $$$${{{{_p_a_r_a_m_e_t_e_r%%%%%%%%_p_a_t_t_e_r_n}}}} If the Shell _p_a_t_t_e_r_n matches the end of the
- value of _p_a_r_a_m_e_t_e_r, then the value of this substitution is the
- value of the _p_a_r_a_m_e_t_e_r with the matched portion deleted;
- otherwise the value of this _p_a_r_a_m_e_t_e_r is substituted. In the
- first form the smallest matching _p_a_t_t_e_r_n is deleted and in the
- latter form the largest matching _p_a_t_t_e_r_n is deleted.
-
- In the above, _w_o_r_d is not evaluated unless it is to be used as the
- substituted string, so that, in the following example, ppppwwwwdddd is executed
- only if dddd is not set or is null:
-
- echo ${d:-`pwd`}
-
- If the colon (::::) is omitted from the above expressions, the shell only
- checks whether _p_a_r_a_m_e_t_e_r is set or not (_I_t _i_s _n_o_t _c_l_e_a_r _w_h_a_t _t_h_i_s
- _m_e_a_n_s).
-
- The following parameters are automatically set by the shell:
-
- #### The number of positional parameters in decimal.
-
-
-
-
- - 7 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- ---- Flags supplied to the shell on invocation or by the sssseeeetttt
- command.
-
- ???? The decimal value returned by the last synchronously
- executed command.
-
- $$$$ The process number of this shell.
-
- !!!! The process number of the last background command invoked.
-
- ____ The last argument of the previous command.
-
- ~~~~ The shell reserves all variables beginning with a ~~~~ for its
- own internal use and these variables cannot be accessed by
- the user.
-
- The following parameters are used by the shell:
-
- CCCCDDDDPPPPAAAATTTTHHHH
- The search path for the _c_d command. (Note that because a
- colon is used by MSDOS to indicate a drive, a semi-colon is
- used to separate the path names instead of a colon - this
- implies that the CDPATH variable must be set using single or
- double quotes to surround the value).
-
- CCCCOOOOLLLLUUUUMMMMNNNNSSSS
- This variable is contains the number of columns on the
- screen. Currently, the shell only sets the variable in
- interactive mode, if it is not already set.
-
- CCCCOOOOMMMMSSSSPPPPEEEECCCC
- When the shell has to process an MSDOS ._b_a_t or OS/2 ._c_m_d
- file, it expects the file indicated by the value of this
- environment variable to be an executable program capable of
- processing the MSDOS ._b_a_t or OS/2 ._c_m_d file. The program is
- invoked with the arguments ////cccc ffffiiiilllleeee____nnnnaaaammmmeeee.
-
- EEEENNNNVVVV If this parameter is set, then parameter substitution is
- performed on the value to generate the pathname of the
- script that will be executed when the shell is invoked (See
- Invocation below). This file is typically used for alias
- and function definitions.
-
- EEEEXXXXTTTTEEEENNNNDDDDEEEEDDDD____LLLLIIIINNNNEEEE
- This parameter pointers to a file which contains information
- for the shell about how command lines are to be built for
- particular external programs and how to convert from the
- format entered to the shell (see _C_o_m_m_a_n_d _L_i_n_e _B_u_i_l_d_i_n_g).
-
- FFFFCCCCEEEEDDDDIIIITTTT
- The default editor name for the fc command.
-
-
- - 8 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- HHHHIIIISSSSTTTTFFFFIIIILLLLEEEE
- The file where command history is saved across login
- sessions. The default value is $$$$HHHHOOOOMMMMEEEE////hhhhiiiissssttttoooorrrryyyy....sssshhhh.
-
- HHHHOOOOMMMMEEEE The default argument (home directory) for the _c_d command.
-
- IIIIFFFFSSSS Internal field separators, normally ssssppppaaaacccceeee, ttttaaaabbbb, and nnnneeeewwww----
- lllliiiinnnneeee.
-
- LLLLIIIINNNNEEEESSSS
- This variable is contains the number of lines on the screen.
- Currently, the shell only sets the variable in interactive
- mode, if it is not already set.
-
- MMMMAAAAIIIILLLL If this parameter is set to the name of a mail file _a_n_d the
- MMMMAAAAIIIILLLLPPPPAAAATTTTHHHH parameter is not set, the shell informs the user of
- the arrival of mail in the specified file.
-
- MMMMAAAAIIIILLLLCCCCHHHHEEEECCCCKKKK
- This parameter specifies how often (in seconds) the shell
- will check for the arrival of mail in the files specified by
- the MMMMAAAAIIIILLLLPPPPAAAATTTTHHHH or MMMMAAAAIIIILLLL parameters. If set to 0, the shell
- will check before each prompt.
-
- MMMMAAAAIIIILLLLPPPPAAAATTTTHHHH
- A semi-colon (;;;;) separated list of file names. If this
- parameter is set, the shell informs the user of the arrival
- of mail in any of the specified files. Each file name can be
- followed by %%%% and a message that will be printed when the
- modification time changes. The default message is "_y_o_u _h_a_v_e
- _m_a_i_l".
-
- OOOOLLLLDDDDPPPPWWWWDDDD
- The previous working directory set by the ccccdddd command.
-
- PPPPAAAATTTTHHHH The search path for commands (see _E_x_e_c_u_t_i_o_n below). The
- user may not change PPPPAAAATTTTHHHH if executing under _r_s_h. (Note that
- because a colon is used by MSDOS to indicate a drive, a
- semi-colon is used to separate the path names instead of a
- colon - this implies that the PATH variable must be set
- using single or double quotes to surround the value). The
- Shell automatically converts Unix format PPPPAAAATTTTHHHH assignments to
- MSDOS format when appropriate. A assignment is converted if
- there are no semi-colons, no \\\\s and one or more colons. If
- there is only one colon, it must not be the second character
- of the new value.
-
- PPPPWWWWDDDD The present working directory set by the ccccdddd command.
-
- PPPPSSSS1111 Primary prompt string, by default ``$$$$ ''.
-
-
-
- - 9 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- PPPPSSSS2222 Secondary prompt string, by default ``>>>> ''.
-
- PPPPSSSS3333 Selection prompt string used within a select loop, ``####???? ''.
-
- PPPPSSSS4444 The value of this parameter is expanded for parameter
- substitution and precedes each line of an execution trace.
- If omitted, the execution trace prompt is ``+ ''.
-
- RRRRAAAANNNNDDDDOOOOMMMM
- Each time this parameter is referenced, a random integer is
- generated. The sequence of random numbers can be
- initialized by assigning a numeric value to RRRRAAAANNNNDDDDOOOOMMMM.
-
- RRRREEEEPPPPLLLLYYYY
- This parameter is set by the sssseeeelllleeeecccctttt ssssttttaaaatttteeeemmmmeeeennnntttt aaaannnndddd bbbbyyyy tttthhhheeee
- rrrreeeeaaaadddd special command when no arguments are supplied.
-
- SSSSEEEECCCCOOOONNNNDDDDSSSS
- Each time this parameter is referenced, the number of
- seconds since shell invocation is returned. If this
- parameter is assigned a value, then the value returned upon
- reference will be the value that was assigned plus the
- number of seconds since the assignment.
-
- SSSSHHHHEEEELLLLLLLL
- When the shell is invoked, it scans the environment (see
- _E_n_v_i_r_o_n_m_e_n_t below) for this name. If it is found and there
- is an 'r' in the file name part of its value, the shell
- becomes a restricted shell. The shell also uses this
- variable to decide which program to spawn to interpret shell
- scripts (see _E_x_e_c_u_t_i_o_n below).
-
- TTTTMMMMPPPP The location of temporary files created by the shell. If
- this variable is not defined, the Shell uses the HHHHOOOOMMMMEEEE
- directory for temporary files. Failing that, the root
- directory of the current drive is used.
-
- The shell gives default values to PPPPAAAATTTTHHHH, PPPPSSSS1111, PPPPSSSS2222, SSSSHHHHEEEELLLLLLLL, HHHHOOOOMMMMEEEE and IIIIFFFFSSSS.
-
- AAAArrrriiiitttthhhhmmmmeeeettttiiiicccc EEEExxxxppppaaaannnnssssiiiioooonnnn
- A string of the form $$$$((((((((_e_x_p)))))))) is substitued with the value of the
- arithemtic expression _e_x_p. _e_x_p is treated as if it were within single
- quotes. See AAAArrrriiiitttthhhhmmmmeeeettttiiiicccc EEEEvvvvaaaalllluuuuaaaattttiiiioooonnnn below.
-
- BBBBllllaaaannnnkkkk IIIInnnntttteeeerrrrpppprrrreeeettttaaaattttiiiioooonnnn
- After parameter and command substitution, the results of substitution
- are scanned for internal field separator characters (those found in
- IIIIFFFFSSSS) and split into distinct arguments where such characters are
- found. Explicit null arguments ("""""""" or '''''''') are retained. Implicit
- null arguments (those resulting from _p_a_r_a_m_e_t_e_r_s that have no values)
- are removed.
-
-
- - 10 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- FFFFiiiilllleeee NNNNaaaammmmeeee GGGGeeeennnneeeerrrraaaattttiiiioooonnnn
- Following substitution, each command _w_o_r_d is scanned for the
- characters ****, ???? and [[[[. If one of these characters appears the word is
- regarded as a _p_a_t_t_e_r_n. The word is replaced with alphabetically
- sorted file names that match the pattern. If no file name is found
- that matches the pattern, the word is left unchanged. The character ....
- at the start of a file name or immediately following a ////, as well as
- the character //// itself, must be matched explicitly. When matching
- patterns for file names, the shell ignores the case of the pattern and
- the file directory entries. Generated file names are always in lower
- case (for FAT file systems). Under HPFS on OS/2, case is preserved.
-
- **** Matches any string, including the null string.
-
- ???? Matches any single character.
-
- [[[[ ............ ]]]]
- Matches any one of the enclosed characters. A pair of
- characters separated by ---- matches any character lexically
- between the pair, inclusive. If the first character
- following the opening ``['' is a ````````!!!!'''''''' any character not
- enclosed is matched.
-
- If the shell has to open or create the file ////ddddeeeevvvv////ttttttttyyyy or ////ddddeeeevvvv////nnnnuuuullllllll
- (which are Unix special files), they are converted to the equivalent
- MSDOS file names (////ddddeeeevvvv////ccccoooonnnn and ////ddddeeeevvvv////nnnnuuuullll respectively). Any user
- programs which could expect ////ddddeeeevvvv////ttttttttyyyy or ////ddddeeeevvvv////nnnnuuuullllllll as arguments must do
- its own mapping to the MSDOS equivalents.
-
- QQQQuuuuoooottttiiiinnnngggg
- The following characters have a special meaning to the shell and cause
- termination of a word unless quoted:
-
- ;;;; &&&& (((( )))) |||| ^^^^ <<<< >>>> nnnneeeewwww----lllliiiinnnneeee ssssppppaaaacccceeee ttttaaaabbbb
-
- A character may be _q_u_o_t_e_d (i.e., made to stand for itself) by
- preceding it with a \\\\. The pair \\\\nnnneeeewwww----lllliiiinnnneeee is ignored. All characters
- enclosed between a pair of single quote marks (''''''''), except a single
- quote, are quoted. Inside double quote marks (""""""""), parameter and
- command substitution occurs and \\\\ quotes the characters \\\\, ````, """", and
- $$$$. """"$$$$****"""" is equivalent to """"$$$$1111 $$$$2222 ............"""", whereas """"$$$$@@@@"""" is equivalent to
- """"$$$$1111"""" """"$$$$2222"""" .............
-
- AAAArrrriiiitttthhhhmmmmeeeettttiiiicccc EEEEvvvvaaaalllluuuuaaaattttiiiioooonnnn
- An ability to perform integer arithmetic is provided with the special
- command lllleeeetttt. Evaluations are performed using _l_o_n_g arithmetic.
- Constants are of the form [_b_a_s_e]_n where _b_a_s_e is a decimal number
- between two and thirty-six representing the arithmetic base and _n is a
- number in that base. If [_b_a_s_e] is omitted then base 10 is used.
-
-
-
-
- - 11 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- An arithmetic expression uses nearly the same syntax precedence, and
- associatively of expression as C. The following set of operators,
- listed in order of decreasing precedence, have been implemented:
-
- - + ! ~ ++ -- unary minus/plus, logical NOT,
- complement, {pre, post}{in,de}crement
- & Logical AND
- ^ Logical XOR
- | Logical OR
- * / % multiplication, division, remainder
- + - addition, subtraction
- << >> Logical shift left and right
- <= >= < > comparison
- == != equality inequality
- && Logical AND
- || ^^ Logical OR, XOR
- ? : Ternary operator
- = += -= *= /= assignement
- %= &= ^= |= <<=
- >>= &&= ||= ^^=
-
- The operators &&&&&&&&, ||||||||, &&&&&&&&==== and ||||||||==== are short-circuiting and only one of
- the latter two expressions in a ternary operator is evaluated. Note
- the precedence of the logical AND, XOR and OR operators.
-
- Sub-expressions in parentheses () are evaluated first and can be used
- to override the above precedence rules.
-
- Named parameters can be reference by name within an expression without
- using the parameter substitution symtax.
-
- Since many of the arithmetic operators require quoting, an alternative
- form of the lllleeeetttt command is provided. For any command which begins
- with a ((((((((, all the characters until a matching )))))))) are treated as a
- quoted expression. More precisely, ((((((((............)))))))) is equivalent to lllleeeetttt
- """"............"""".
-
- PPPPrrrroooommmmppppttttiiiinnnngggg
- When used interactively, the shell prompts with the value of PPPPSSSS1111
- before reading a command. If at any time a new-line is typed and
- further input is needed to complete a command, the secondary prompt
- (i.e., the value of PPPPSSSS2222) is issued.
-
- Many people like to have the shell provide them with useful
- information in their prompt. To accommodate this, the shell
- recognises special sequences of characters in the values of PPPPSSSS1111 and
- PPPPSSSS2222, and substitutes the appropriate information for them. The
- special sequences and what they signify are:
-
- %%%%dddd Place the current date, in the form DAY DD-MM-YY into the
- prompt.
-
-
- - 12 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- %%%%eeee Place the current event number (as defined by the hhhhiiiissssttttoooorrrryyyy
- command) into the prompt. If history evaluation has been
- turned off (via hhhhiiiissssttttoooorrrryyyy ----dddd), no number will be substituted
- in (i.e. the %%%%eeee will be removed).
-
- %%%%nnnn Place the current working drive into the prompt.
-
- %%%%pppp Place the current working directory into the prompt.
-
- %%%%tttt Place the current time of day, in the form HH:MM into the
- prompt. The time is on a 24 hour clock, i.e. 1:30 in the
- afternoon will be 13:30.
-
- %%%%vvvv Place the MSDOS version number, in the form MSDOS MM:MM
- into the prompt.
-
- %%%%%%%% Place the character % into the prompt.
-
- \\\\xxxxxxxxxxxx Place the character _\_x_x_x into the prompt. The processing of
- escape sequences is the same as that for eeeecccchhhhoooo.
-
- Some of these facilities are of more use than others.
-
- IIIInnnnppppuuuutttt////OOOOuuuuttttppppuuuutttt
- Before a command is executed, its input and output may be redirected
- using a special notation interpreted by the shell. The following may
- appear anywhere in a simple-command or may precede or follow a _c_o_m_m_a_n_d
- and are _n_o_t passed on to the invoked command; substitution occurs
- before _w_o_r_d or _d_i_g_i_t is used:
-
- <<<<wwwwoooorrrrdddd Use file _w_o_r_d as standard input (file descriptor 0).
-
- >>>>wwwwoooorrrrdddd Use file _w_o_r_d as standard output (file descriptor 1).
- If the file does not exist it is created; otherwise, it
- is truncated to zero length.
-
- >>>>>>>>wwwwoooorrrrdddd Use file _w_o_r_d as standard output. If the file exists
- output is appended to it (by first seeking to the end-
- of-file); otherwise, the file is created.
-
- <<<<<<<<[----]wwwwoooorrrrdddd The shell input is read up to a line that is the same as
- _w_o_r_d, or to an end-of-file. The resulting document
- becomes the standard input. If any character of _w_o_r_d is
- quoted, no interpretation is placed upon the characters
- of the document; otherwise, parameter and command
- substitution occurs, (unescaped) \\\\nnnneeeewwww----lllliiiinnnneeee is ignored,
- and \\\\ must be used to quote the characters \\\\, $$$$, ````, and
- the first character of _w_o_r_d. If ---- is appended to <<<<<<<<,
- all leading tabs are stripped from _w_o_r_d and from the
- document.
-
-
-
- - 13 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- <<<<&&&&ddddiiiiggggiiiitttt Use the file associated with file descriptor _d_i_g_i_t as
- standard input. Similarly for the standard output using
- >>>>&&&&ddddiiiiggggiiiitttt.
-
- <<<<&&&&---- The standard input is closed. Similarly for the
- standard output using >>>>&&&&----.
-
- nnnn<<<<>>>>wwwwoooorrrrdddd causes the file _w_o_r_d to be opened on file descriptor _n
- for both reading and writing. The file must already
- exist.
-
- If any of the above is preceded by a digit, the file descriptor which
- will be associated with the file is that specified by the digit
- (instead of the default 0 or 1). For example:
-
- ... 2>&1
-
- associates file descriptor 2 with the file currently associated with
- file descriptor 1.
-
- The order in which redirections are specified is significant. The
- shell evaluates redirections left-to-right. For example:
-
- ... 1>_x_x_x 2>&1
-
- first associates file descriptor 1 with file _x_x_x. It associates file
- descriptor 2 with the file associated with file descriptor 1 (i.e.
- _x_x_x). If the order of redirections were reversed, file descriptor 2
- would be associated with the terminal (assuming file descriptor 1 had
- been) and file descriptor 1 would be associated with file _x_x_x .
-
- The environment for the execution of a command contains the file
- descriptors of the invoking shell as modified by input/output
- specifications.
-
- Redirection of output is not allowed in the restricted shell.
-
- EEEEnnnnvvvviiiirrrroooonnnnmmmmeeeennnntttt
- 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 pairs that is
- passed to an executed program in the same way as a normal argument
- list. The shell interacts with the environment in several ways. On
- invocation, the shell scans the environment and creates a parameter
- for each name found, giving it the corresponding value. If the user
- modifies the value of any of these parameters or creates new
- parameters, none of these affects the environment unless the eeeexxxxppppoooorrrrtttt
- command is used to bind the shell's parameter to the environment (see
- also sssseeeetttt ----aaaa). A parameter may be removed from the environment with
- the uuuunnnnsssseeeetttt command. The environment seen by any executed command is
- thus composed of any unmodified name-value pairs originally inherited
- by the shell, minus any pairs removed by uuuunnnnsssseeeetttt, plus any modifications
- or additions, all of which must be noted in eeeexxxxppppoooorrrrtttt commands.
-
-
- - 14 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- The environment for any _s_i_m_p_l_e-_c_o_m_m_a_n_d may be augmented by prefixing
- it with one or more assignments to parameters. Thus:
-
- TERM=450 cmd args and
- (export TERM; TERM=450; cmd args)
-
- are equivalent (as far as the execution of _c_m_d is concerned).
-
- If the ----kkkk flag is set, _a_l_l keyword arguments are placed in the
- environment, even if they occur after the command name. The following
- first prints aaaa====bbbb cccc and cccc:
-
- echo a=b c
- set -k
- echo a=b c
-
- SSSSiiiiggggnnnnaaaallllssss
- The INTERRUPT and QUIT signals for an invoked command are ignored if
- the command is followed by &&&&; otherwise signals have the values
- inherited by the shell from its parent, with the exception of signal
- 11 (but see also the ttttrrrraaaapppp command below).
-
- CCCCoooommmmmmmmaaaannnndddd RRRReeee----eeeennnnttttrrrryyyy
- The text of the last 100 commands entered from a terminal device is
- saved in a _h_i_s_t_o_r_y file. The file $$$$HHHHOOOOMMMMEEEE////hhhhiiiissssttttoooorrrryyyy....sssshhhh is used if the
- HHHHIIIISSSSTTTTFFFFIIIILLLLEEEE variable is not set. The special command ffffcccc is used to list
- or edit a portion of this file. The portion of the file to be edited
- or listed can be selected by number or by giving the first character
- or characters of the command. A single command or range of commands
- can be specified. If you do not specify an editor program as an
- argument to ffffcccc, the value of the parameter FFFFCCCCEEEEDDDDIIIITTTT is used. The edited
- command is printed and re-executed upon leaving the editor. The
- editor name ---- is used to skip the editing phase and to re-execute the
- command. In this case a substitution parameter of the form _o_l_d====_n_e_w
- can be used to modify the command before execution. For example, if rrrr
- is aliased to ````ffffcccc ----eeee ----'''', typing `rrrr bbbbaaaadddd====ggggoooooooodddd cccc' re-executes the most
- recent command that starts with the letter cccc and replaces the first
- occurrence of the string bbbbaaaadddd with the string ggggoooooooodddd.
-
- HHHHiiiissssttttoooorrrryyyy
- When reading input from an interactive terminal, a ``!'' at the start
- of a line signals to the shell that it should attempt to perform a
- history subsitution. A history subsitution is a short-hand method
- which allows the user to recall a previous command for execution or
- editing. The recalled command is placed in the command line for
- editing or passing to the rest of the shell for normal processing. A
- history substitution takes the form:
-
- !!!! [ ! | _s_t_r | _n_u_m ] _t_e_r_m_i_n_a_t_o_r
-
-
-
-
- - 15 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- !!!!!!!! will place the previous command in the command line. !!!!_n_u_m will
- place the history command with the specified number in the command
- line. !!!!_s_t_r will find the most recent command line that started with
- the characters in _s_t_r.
-
- The _t_e_r_m_i_n_a_t_o_r determines what action is performed after the history
- line has been found. If the original history command is entered using
- the <<<<rrrreeeettttuuuurrrrnnnn>>>> key, the new command line is passed directly to the
- shell. If the <<<<eeeennnndddd>>>> key is pressed, the new command line can be
- edited in the manner described below.
-
- CCCCoooommmmmmmmaaaannnndddd LLLLiiiinnnneeee EEEEddddiiiittttiiiinnnngggg
- When reading input from an interactive terminal, certain keystrokes
- allow the current input line to be edited. The following keystrokes
- corresponding to the following functions are defined in the
- initialisation file sssshhhh....iiiinnnniiii. The keywords in the initialisation file
- which provide the functions are listed below:
-
- RRRRiiiigggghhhhtttt
- Move the cursor right one character
-
- WWWWoooorrrrddddRRRRiiiigggghhhhtttt
- Move the cursor right one word
-
- LLLLeeeefffftttt Move the cursor left one character
-
- WWWWoooorrrrddddLLLLeeeefffftttt
- Move the cursor left one word
-
- PPPPrrrreeeevvvviiiioooouuuussss
- Get the previous command from the history file
-
- NNNNeeeexxxxtttt Get the next command from the history file
-
- IIIInnnnsssseeeerrrrtttt
- Toggle insert/overwrite mode (note the shape of the cursor
- changes to indicate the current mode)
-
- DDDDeeeelllleeeetttteeeeRRRRiiiigggghhhhtttt
- Delete the current character unless the cursor is at the end of
- line when no action is taken
-
- SSSSttttaaaarrrrtttt
- Move the cursor to the start of the command
-
- CCCCoooommmmpppplllleeeetttteeee
- Attempt to complete the filename. The shell attempts to complete
- the file name at the current cursor position. The file name is
- delimited by white space characters. If the shell is unable to
- complete the file name (ie no match can be found in the
- appropriate directory), the bell is rung. If a single match is
-
-
- - 16 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- found, the new file name is displayed. If multiple matches are
- found, the file name is replaced by the longest non-unique part
- of the file name and the bell is rung.
-
- EEEEnnnndddd Move the cursor to the end of the command, unless the first
- character of the command is a !!!!, in which case the appropriate
- history search is done. The cursor is placed at the end of the
- command line.
-
- FFFFlllluuuusssshhhh
- Delete to the end of the line
-
- SSSSccccaaaannnnBBBBaaaacccckkkkwwwwaaaarrrrdddd
- Search backwards from the current history command for the next
- match against the last history request or the string currently in
- the command line if there has been no previous history request.
-
- SSSSccccaaaannnnFFFFoooorrrreeeewwwwaaaarrrrdddd
- Search forewards from the current history command for the next
- match against the last history request or the string currently in
- the command line if there has been no previous history request.
-
- CCCClllleeeeaaaarrrr
- Erase the complete line.
-
- DDDDiiiirrrreeeeccccttttoooorrrryyyy
- Display the file name list matching the partially entered file
- name under the cursor. If no matches are found the bell is rung.
- To display the whole directory, enter the directory name followed
- by a slash ////. After the directory listing has been displayed,
- the entered command line is redisplayed.
-
- DDDDeeeelllleeeetttteeeeLLLLeeeefffftttt
- Delete the character to the left of the cursor.
-
- RRRReeeettttuuuurrrrnnnn
- Execute the command line, unless the first character of the
- command is a !!!!, in which case the appropriate history processing
- is done. _T_h_i_s _i_s _t_h_e _a_c_t_u_a_l _k_e_y _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 _f_i_l_e.
-
- IIIInnnniiiittttiiiiaaaalllliiiissssaaaattttiiiioooonnnn FFFFiiiilllleeee
- When the shell is run in interactive mode, the Command Line Editing
- keys and other user configuration parameters are read from the
- initialisation file _s_h._i_n_i. This shell looks for this file in the
- same directory as the sssshhhh executable which is running. It does not use
- the SSSSHHHHEEEELLLLLLLL environment variable or search the directories in the PPPPAAAATTTTHHHH
- environment variable. At present, there are two types of entry in
- this file: keyboard configuration; and others. The entry is contained
- in a single line and consists of a keyword (in upper or lower case),
- white space, an equals symbols, white space and one or two numeric
-
-
- - 17 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- values (see _s_t_r_t_o_l for valid formats where _b_a_s_e parameter is zero),
- followed by an end of line character.
-
- For the keyboard entries, the numeric values give the MSDOS Function 8
- (Console Input without Echo) return values for that entry. Note that
- extended codes (function keys) require two calls to this function.
- The first call returns zero and the second the extended code. In the
- configuration file, a first numeric value of zero indicates a extended
- code and must be followed by a second value. A non-zero first numeric
- value must not be followed by anything else on the line.
-
- Other entries must only have one numeric value. A zero value disables
- the function and a non-zero value enables the function. At present,
- there are two other functions:
-
- BBBBeeeellllllll Enable/disable warning bells
-
- HHHHaaaallllffffHHHHeeeeiiiigggghhhhtttt
- Use full or halfheight block cursor to indicate Insert mode
-
- IIIInnnnsssseeeerrrrttttMMMMooooddddeeee
- Set the default insert mode on or off
-
- IIIInnnnsssseeeerrrrttttCCCCuuuurrrrssssoooorrrr
- Enable/disable the insert mode cursor.
-
- Invalid lines or lines beginning with a #### are ignored.
-
- The following table gives the list of valid keywords and their default
- values:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 18 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
- _________________________________________________________________________
- Keyword First numeric Second numeric Actual Key
- _________________________________________________________________________
- KEYBOARD ENTRIES
- ScanBackward 0 0x49 PAGE UP
- ScanForeward 0 0x51 PAGE DOWN
- Previous 0 0x48 UP ARROW
- Next 0 0x50 DOWN ARROW
- Left 0 0x4b LEFT ARROW
- Right 0 0x4d RIGHT ARROW
- WordRight 0 0x74 Control RIGHT ARROW
- WordLeft 0 0x73 Control LEFT ARROW
- Start 0 0x47 HOME
- Clear 0 0x76 Control PAGE DOWN
- Flush 0 0x75 Control END
- End 0 0x4f END
- Insert 0 0x52 INSERT
- DeleteRight 0 0x53 DELETE
- DeleteLeft 0x08 BACKSPACE
- Complete 0 0x77 Control HOME
- Directory 0 0x0f Shift TAB
- _________________________________________________________________________
- OTHER FUNCTIONS
- Bell 0
- HalfHeight 0
- InsertMode 0
- InsertCursor 1
- _________________________________________________________________________
-
- EEEExxxxeeeeccccuuuuttttiiiioooonnnn
- Each time a command is executed, the above substitutions are carried
- out. If the command name matches one of the _S_p_e_c_i_a_l _C_o_m_m_a_n_d_s listed
- below, it is executed in the shell process. If the command name does
- not match a _S_p_e_c_i_a_l _C_o_m_m_a_n_d, but matches the name of a defined
- function, the function is executed in the shell process (note how this
- differs from the execution of shell procedures). The positional
- parameters $$$$1111, $$$$2222, .... are set to the arguments of the function. If
- the command name matches neither a _S_p_e_c_i_a_l _C_o_m_m_a_n_d nor the name of a
- defined function, a new process is created and an attempt is made to
- execute the command via _e_x_e_c(2).
-
- The shell parameter PPPPAAAATTTTHHHH defines the search path for the directory
- containing the command. Alternative directory names are separated by
- a semi-colon (;;;;). The default path is ;;;;cccc::::////bbbbiiiinnnn;;;;cccc::::////uuuussssrrrr////bbbbiiiinnnn (specifying
- the current directory, cccc::::////bbbbiiiinnnn, and cccc::::////uuuussssrrrr////bbbbiiiinnnn, in that order). Note
- that the current directory is specified by a null path name, which can
- appear immediately after the equal sign or between the semi-colon
- delimiters anywhere else in the path list. If the command name
- contains a //// or starts with xxxx:::: (where x is a drive letter) the search
- path is not used; such commands will not be executed by the restricted
- shell. Otherwise, each directory in the path is searched for an
- executable file. Executable files are indicated by a .exe or .com
- extension. This extension is automatically supplied by the shell and
-
-
- - 19 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- not have to be entered by the user.
-
- If the file with a .com or .exe extension cannot be found in the
- directory, the file is opened and first 512 characters are read. If
- there are no characters in the block with a value in the range 0 to 7,
- the file is assumed to be a script file containing shell commands.
- Note that the shell will check the file and if that file does not
- exist or is not a script, it will try the file with an extension of
- ....sssshhhh. If a ....sssshhhh file is found, that will be processed. A sub-shell
- (given by the environment variable SSSSHHHHEEEELLLLLLLL) is spawned to read it.
-
- If the script file starts with the a line of the form #! _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 of the shell to
- process the script. Optional arguments can be supplied in the script
- file which are passed before the name of the script file. Thus, if
- the file _d_e_m_o contained the following string as the first line
-
- #! perl -sP
-
- Entering _d_e_m_o _n_a_m_e would be equivalent to entering the _p_e_r_l -_s_P _n_a_m_e
- at the command prompt. Note that no other processing of the first
- line other that the separation (by white space) into arguments is
- done.
-
- If none of the above conditions for a executable file are detected and
- a file with a .bat extension exists in the directory, the command
- processor given by the CCCCOOOOMMMMSSSSPPPPEEEECCCC environment variable is spawned to
- process the file. This is normally the standard MSDOS _c_o_m_m_a_n_d._c_o_m or
- OS/2 _c_m_d._e_x_e processor.
-
- A parenthesized command is also executed in a sub-shell.
-
- CCCCoooommmmmmmmaaaannnndddd LLLLiiiinnnneeee BBBBuuuuiiiillllddddiiiinnnngggg
- The file pointed to by the EEEEXXXXTTTTEEEENNNNDDDDEEEEDDDD____LLLLIIIINNNNEEEE parameter contains
- information which instructs the shell on how to create the command
- line for a particular program from the information entered to the
- shell. If the program name is not found in this file, the standard
- MSDOS or OS/2 mechanisms are used with no special processing.
-
- The file is scanned prior to the execution of an external command. An
- entry in this file is contained in a single line and consists of a
- program name (in upper or lower case), white space, an equals symbol,
- white space and the program type followed by up to four optional
- values, followed by an end of line character. The vvvvaaaalllluuuueeee tells the
- shell how to build the command line and the optional values provide
- additional information. The valid pppprrrrooooggggrrrraaaammmm ttttyyyyppppeeeessss are (note that
- invalid entries cause a line to be ignored) given below. These
- pppprrrrooooggggrrrraaaammmm ttttyyyyppppeeeessss must appear as the first value following the _e_q_u_a_l_s.
- Otherwise, they are ignored. An empty pppprrrrooooggggrrrraaaammmm ttttyyyyppppeeeessss may be empty to
- only select one or more of the optional values.
-
-
-
- - 20 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- uuuunnnniiiixxxx This program can process the command line using the indirect
- command file character @@@@. When a program, which can process
- this format, finds a command line parameter starting with a
- @@@@ in the command line, it treats the rest of the parameter
- as a file and reads the command line parameters from that
- file (one per line, the end of line characters can be
- escaped by preceeding with a \\\\). Examples of this
- functionality include the Standard LLLLiiiinnnnkkkkeeeerrrr and LLLLiiiibbbbrrrraaaarrrriiiiaaaannnn.
-
- The file name is set up in UNIX format (using //// as the
- directory separators).
-
- This functionality allows the user to get round the 127 byte
- command line length limit of MSDOS. A sample version of the
- code to process wild cards and indirect command files is
- included with the source of the shell in the file _s_t_d_a_r_g_v._c.
-
- ddddoooossss This program can process the command line using the indirect
- command file character @@@@. The file name is set up in DOS
- format (using \\\\s as the directory separators).
-
- eeeennnnvvvviiiirrrroooonnnn
- The command line is passed to the external program in the
- environment variable specified by the first optional value.
- The optional second value which is numeric, gives the
- parameter separator character to be used (see _s_t_r_t_o_l for
- valid formats where _b_a_s_e parameter is zero). If this second
- value is missing or evaluates to zero, space is used.
-
- The following optional values described below may be used after either
- uuuunnnniiiixxxx or ddddoooossss or by themselves:
-
- sssswwwwiiiittttcccchhhh
- The optional value sssswwwwiiiittttcccchhhh causes the program parameters to
- be converted from UUUUNNNNIIIIXXXX format to MMMMSSSSDDDDOOOOSSSS format. This means
- that parameters beginning with an ---- have it converted to a
- ////. For all other parameters, ////s are converted to \\\\s. This
- option is not applied to quoted parameters or escaped
- characters.
-
- This functionality allows ease of entry of MSDOS commands
- which expect MSDOS directory separators which the shell
- interpretes as the escape character (not that the underlying
- MSDOS really cares). eeeexxxxppppoooorrrrtttt The optional value eeeexxxxppppoooorrrrtttt
- causes the marked environment variables to be converted from
- UUUUNNNNIIIIXXXX format to MMMMSSSSDDDDOOOOSSSS format. This is equivalent to setting
- the -m flag for this program only.
-
- nnnnooooeeeexxxxppppaaaannnndddd
- The optional value nnnnooooeeeexxxxppppaaaannnndddd disables file name generation
- when building the command line (also see sssseeeetttt command).
-
-
- - 21 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- nnnnoooosssswwwwaaaapppp
- The optional value nnnnoooosssswwwwaaaapppp disables swapping for the command.
- This may speed up the execution of small commands.
-
- FFFFuuuunnnnccccttttiiiioooonnnnssss
- The ffffuuuunnnnccccttttiiiioooonnnn _k_e_y_w_o_r_d, _d_e_s_c_r_i_b_e_d _i_n _t_h_e CCCCoooommmmmmmmaaaannnnddddssss section above, is used
- to define shell functions. Shell functions are read in and stored
- internally. Alias names are resolved when the function is read.
- Functions are executed like commands with the arguments passed as
- positional parameters. (See EEEExxxxeeeeccccuuuuttttiiiioooonnnn above).
-
- Functions execute in the same process as the caller and share all
- files and present working directory with the caller. Traps caught by
- the caller are reset to their default action inside the function. A
- trap condition that is not caught or ignored by the function causes
- the function to terminate and the condition to be passed on to the
- caller. A trap set on EXIT inside a function is executed after the
- function completes.
-
- Ordinarily, variables are shared between the calling program and the
- function. However, the ttttyyyyppppeeeesssseeeetttt special command used within a function
- defines local variables whose scope includes the current function and
- all functions it calls.
-
- The special command rrrreeeettttuuuurrrrnnnn is used to return from function calls.
- Errors within functions return control to the caller.
-
- Function identifiers can be listed with the ffffuuuunnnnccccttttiiiioooonnnn special command.
- The text of functions will also be listed. Function can be undefined
- with the uuuunnnnffffuuuunnnnccccttttiiiioooonnnn special command.
-
- Ordinarily, functions are unset when the shell executes a shell
- script. Functions that need to be defined across separate invocations
- of the shell should be placed in the EEEENNNNVVVV file.
-
- SSSSppppeeeecccciiiiaaaallll CCCCoooommmmmmmmaaaannnnddddssss
- Input/output redirection is permitted for these commands. File
- descriptor 1 is the default output location.
-
- :::: No effect; the command does nothing. A zero exit code is
- returned.
-
- _l_e_t_t_e_r::::
- Select the drive specified by _l_e_t_t_e_r.
-
- .... _f_i_l_e
- Read and execute commands from _f_i_l_e and return. The search path
- specified by PPPPAAAATTTTHHHH is used to find the directory containing _f_i_l_e.
-
- aaaalllliiiiaaaassss [ ----tttt ] [ _n_a_m_e[=_v_a_l_u_e ] ... ]
- AAAAlllliiiiaaaassss with no arguments prints the list of aliases in the form
-
-
- - 22 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- _n_a_m_e=vvvvaaaalllluuuueeee on standard output. An alias is defined for each _n_a_m_e
- whose _v_a_l_u_e is given. A trailing space in _v_a_l_u_e causes the next
- word to be checked for alias substitution. The ----tttt flag is used
- to set and list tracked aliases. The _v_a_l_u_e of a tracked alias is
- the full pathname corresponding to the given name. The _v_a_l_u_e
- becomes undefined when the _v_a_l_u_e of PATH is reset but the aliases
- remained tracked. Without the ----tttt flag, for each _n_a_m_e in the
- argument list for which no _v_a_l_u_e is given, the _n_a_m_e and _v_a_l_u_e of
- the alias is printed. Alias returns zero unless a _n_a_m_e is given
- for which no alias has been defined.
-
- bbbbrrrreeeeaaaakkkk [ _n ]
- Exit from the enclosing ffffoooorrrr or wwwwhhhhiiiilllleeee loop, if any. If _n is
- specified, break _n levels.
-
- bbbbuuuuiiiillllttttiiiinnnn [ _a_r_g_s ... ]
- Force the selection of the bbbbuuuuiiiillllttttiiiinnnn version of a command. The
- builtin shell command selected by the first _a_r_g_s value is
- executed with the parameters defined by the remaining _a_r_g_ss. If
- no arguments are given, a list of all _b_u_i_l_t_i_n commands is
- printed.
-
- If the first argument is one of the following, the processing of
- the builtin command in the following arguments are changed as
- indicated:
-
- ----aaaa Set the following builtin commands to use builtin version in
- preference to any function or external versions.
-
- ----dddd Set the following builtin commands to use the function or
- external version in preference to the builtin version.
-
- ----ssss Display the current status of the following builtin
- commands.
-
- ccccoooonnnnttttiiiinnnnuuuueeee [ _n ]
- Resume the next iteration of the enclosing ffffoooorrrr or wwwwhhhhiiiilllleeee loop. If
- _n is specified, resume at the _n-th enclosing loop.
-
- ccccdddd [ _a_r_g ]
- ccccdddd _s_e_a_r_c_h _r_e_p_l_a_c_e
- This command can be in either of two forms. In the first form it
- changes the current directory to _a_r_g. The shell parameter HHHHOOOOMMMMEEEE
- is the default _a_r_g. The shell parameter CCCCDDDDPPPPAAAATTTTHHHH defines the
- search path for the directory containing _a_r_g. Alternative
- directory names are separated by a semi-colon (;;;;). The default
- path is <<<<nnnnuuuullllllll>>>> (specifying the current directory). Note that the
- current directory is specified by a null path name, which can
- appear immediately after the equal sign or between the semi-colon
- delimiters anywhere else in the path list. If _a_r_g begins with a
- //// or xxxx:::: (where x is a drive letter), the search path is not used.
-
-
- - 23 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- Otherwise, each directory in the path is searched for _a_r_g. The
- _c_d command may not be executed by _r_s_h.
-
- In the second form, ccccdddd substitutes the string _r_e_p_l_a_c_e for the
- string _s_e_a_r_c_h in the current directory name, PPPPWWWWDDDD and tries to
- change to this new directory.
-
- ddddeeeettttaaaacccchhhh _p_r_o_g_r_a_m [ _a_r_g_s ]
- This command (which is only available under OS/2) starts and
- simultaneously detaches an OS/2 _p_r_o_g_r_a_m from the shell. Any
- _p_r_o_g_r_a_m that is started with ddddeeeettttaaaacccchhhh command must be able to
- process independently outside the control of the shell. Builtin
- shell commands and functions cannot be detached.
-
- eeeecccchhhhoooo [ _a_r_g ... ]
- Echo arguments. EEEEcccchhhhoooo writes its arguments separated by blanks and
- terminated by a new-line on the standard output. It also
- understands C-like escape conventions; beware of conflicts with
- the shell's use of \\\\:
-
- \\\\bbbb backspace
- \\\\cccc print line without new-line
- \\\\ffff form-feed
- \\\\nnnn new-line
- \\\\rrrr carriage return
- \\\\tttt tab
- \\\\vvvv vertical tab
- \\\\\\\\ backslash
- \\\\_n the 8-bit character whose ASCII code is the 1-, 2- or 3-
- digit octal number _n, which must start with a zero.
-
- _E_c_h_o is useful for producing diagnostics in command files
- and for sending known data into a pipe.
-
- eeeevvvvaaaallll [ _a_r_g ... ]
- The arguments are read as input to the shell and the resulting
- command(s) executed.
-
- eeeexxxxeeeecccc [ _a_r_g ... ]
- The command specified by the arguments is executed in place of
- this shell without creating a new process. Input/output
- arguments may appear and, if no other arguments are given, cause
- the shell input/output to be modified.
-
- eeeexxxxiiiitttt [ _n ]
- Causes a shell to exit with the exit status specified by _n. If _n
- is omitted the exit status is that of the last command executed
- (an end-of-file will also cause the shell to exit.)
-
- eeeexxxxppppoooorrrrtttt [ _n_a_m_e[=_v_a_l_u_e] ... ]
- The given _n_a_m_es are marked for automatic export to the
-
-
- - 24 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- _e_n_v_i_r_o_n_m_e_n_t of subsequently-executed commands. If no arguments
- are given, a list of all names that are exported in this shell is
- printed. Function names may _n_o_t be exported.
-
- ffffaaaallllsssseeee
- No effect; the command does nothing. A non-zero exit code is
- returned.
-
- ffffcccc [ ----eeee _E_d_i_t_o_r_N_a_m_e ] [ ----nnnnllllrrrr ] [ _F_i_r_s_t [ _L_a_s_t ] ]
- ffffcccc ----eeee ---- [ _O_l_d=_N_e_w ] [ _C_o_m_m_a_n_d ]
- In the first form, a range of commands from _F_i_r_s_t to _L_a_s_t is
- selected from the last 100 commands that were typed at the
- terminal. The _F_i_r_s_t and _L_a_s_t parameters can be specified as a
- number or as a string. A string locates the most recent command
- starting with the given string. A negative number is used as an
- offset to the current command number. If _L_a_s_t is not specified,
- then it is set to _F_i_r_s_t. If _F_i_r_s_t is not specified, the default
- is the previous command for editing and -16 for listing.
-
- ----llll Lists the commands to standard output.
-
- ----rrrr Reverses the order of the commands in the list.
-
- ----nnnn Suppresses command numbers when listing.
-
- If the ----llll flag is not specified, the editor program specified by
- _E_d_i_t_o_r_N_a_m_e is invoked on a file containing these key-board
- commands. If _E_d_i_t_o_r_N_a_m_e is not supplied, then the value of the
- FFFFCCCCEEEEDDDDIIIITTTT parameter is used as the editor. When editing is
- complete, the edited command(s) is executed.
-
- In the second form, the specified _c_o_m_m_a_n_d is carried out again
- after the _O_l_d=_N_e_w substitution is performed.
-
- ffffuuuunnnnccccttttiiiioooonnnnssss [ _n_a_m_e ... ]
- The functions given by _n_a_m_es are printed. If no arguments are
- given, a all the functions are displayed.
-
- ggggeeeettttoooopppptttt _o_p_t_s_t_r_i_n_g _n_a_m_e [ _a_r_g_s ... ]
- Parse command options and write them to standard output. GGGGeeeettttoooopppptttt
- is used to break up options in command lines for easy parsing by
- shell procedures and to check for legal options. _O_p_t_s_t_r_i_n_g is a
- string of recognized option letters (see _g_e_t_o_p_t(3C)); if a letter
- is followed by a colon, the option is expected to have an
- argument which may or may not be separated from it by white
- space. The special option -------- is used to delimit the end of the
- options. If it is used explicitly, ggggeeeettttoooopppptttt will recognize it;
- otherwise, ggggeeeettttoooopppptttt will generate it; in either case, ggggeeeettttoooopppptttt will
- place it at the end of the options. Each option is preceded by a
- ---- and is in its own positional parameter; each option argument is
- also parsed into its own positional parameter.
-
-
- - 25 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- The following code fragment shows how one might process the
- arguments for a command that can take the options aaaa or bbbb, as well
- as the option oooo, which requires an argument:
-
- set -- `getopt abo: $*`
- if [ $? != 0 ]
- then
- echo $USAGE
- exit 2
- fi
- for i in $*
- do
- case $i in
- -a | -b) FLAG=$i; shift;;
- -o) OARG=$2; shift 2;;
- --) shift; break;;
- esac
- done
-
- This code will accept any of the following as equivalent:
-
- cmd -aoarg file file
- cmd -a -o arg file file
- cmd -oarg -a file file
- cmd -a -oarg -- file file
-
- hhhhiiiissssttttoooorrrryyyy [ ----ddddeeeeiiiillllssss ]
- The hhhhiiiissssttttoooorrrryyyy command, with no arguments, will print all the
- commands that are currently saved in the shell's history buffers.
- As new commands are executed, and space in the buffers runs out,
- old commands will be deleted. The hhhhiiiissssttttoooorrrryyyy commands prints out
- the stored commands with sequence numbers. Negative numbered
- commands, through command number zero, are commands that were
- retrieved from the saved history file. Commands starting at one
- were entered during the current login session. If a saved
- command contains embedded newlines, these will be printed out as
- the sequence \\\\nnnn, so that individual command stay on one line.
-
- The arguments changes the way the shell processes history
- information as follows:
-
- ----dddd Disable the saving of commands in the history file.
-
- ----eeee Enable the saving of commands in the history file.
-
- ----iiii Initialise the history file.
-
- ----llll Load the history from the file given by the HHHHIIIISSSSTTTTFFFFIIIILLLLEEEE
- environment variable.
-
-
-
-
- - 26 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- ----ssss Save the history to the file given by the HHHHIIIISSSSTTTTFFFFIIIILLLLEEEE
- environment variable.
-
- jjjjoooobbbbssss [ ----llll ]
- This command (which is only available under OS/2) lists the
- active jobs; giving the -l options lists process id's in addition
- to the normal information.
-
- kkkkiiiillllllll [ ----ssssiiiigggg ] process ...
- This command (which is only available under OS/2) sends either
- the TTTTEEEERRRRMMMM (terminate) signal or the specified signal to the
- specified _p_r_o_c_e_s_s_e_s. _S_i_g_n_a_l_s _a_r_e _g_i_v_e_n _b_y _n_a_m_e, _w_h_i_c_h _a_r_e _l_i_s_t_e_d
- _b_y ''''kkkkiiiillllllll ----llll''''.
-
- lllleeeetttt [ _a_r_g ... ]
- Each _a_r_g is an arithmetic expression to be evaluated. All
- calculations are done as long integers and no check for overflow
- is performed. See AAAArrrriiiitttthhhhmmmmeeeettttiiiicccc EEEEvvvvaaaalllluuuuaaaattttiiiioooonnnn above for a description
- of arithmetic expressions..
-
- The return code is 0 if the value of the last expression is non-
- zero, and 1 otherwise.
-
- mmmmssssddddoooossss [ _n_a_m_e[=_v_a_l_u_e] ... ]
- The given _n_a_m_es are marked _m_s_d_o_s format and if the ----mmmm flag is
- set, the values of the these _n_a_m_es are exported to child
- processes with any slashes in the value replaced by \\\\s. If no
- arguments are given, a list of all _m_s_d_o_s names is printed.
-
- pppprrrriiiinnnntttt [ ----RRRRnnnnpppprrrrssss ] [ ----uuuu uuuunnnniiiitttt ] [ _a_r_g_s ... ]
- The shell output mechanism. With no flags or with flag - or --
- the _a_r_g_s are printed on standard output as described by the eeeecccchhhhoooo
- command.
-
- ----RRRR Prints in the raw mode, in which the escape conventions of
- the eeeecccchhhhoooo command are ignored. The -_R option prints all
- subsequent _a_r_g_s and options other than -_n.
-
- ----nnnn Prevents a new-line from being added to the output.
-
- ----pppp ----pppp flag has not effect and is defined for compatability.
-
- ----rrrr Prints in the raw mode, in which the escape conventions of
- the eeeecccchhhhoooo command are ignored.
-
- ----ssss Writes the _a_r_g_s to the history file instead of to standard
- output.
-
- ----uuuu uuuunnnniiiitttt
- Specifies a one digit file descriptor uuuunnnniiiitttt number on which
- the output is placed. The default is 1.
-
-
- - 27 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- ppppwwwwdddd [ _d_r_i_v_e ... ]
- Print the current working directory. If _d_r_i_v_e is present, the
- current working directory on each of the drives is printed.
- _d_r_i_v_e contains a string of drive letters, no colons are required.
-
- rrrreeeeaaaadddd [ ----pppprrrrssss ] [ ----uuuu uuuunnnniiiitttt ] [ _n_a_m_e?_p_r_o_m_p_t ] [ _n_a_m_e ... ]
- The shell input mechanism. One line is read and is broken up
- into words using the characters in IIIIFFFFSSSS as separators. In raw
- mode, ----rrrr, a \\\\ at the end of a line does not signify line
- continuation. The first word is assigned to the first _n_a_m_e, the
- second word to the second _n_a_m_e, etc., with leftover words
- assigned to the last _n_a_m_e. If the ----ssss flag is present, the input
- will be saved as a command in the history file. The ----pppp flag has
- not effect and is defined for compatability. The flag ----uuuu can be
- used to specify a one digit file descriptor uuuunnnniiiitttt to read from.
- The file descriptor can be opened with the eeeexxxxeeeecccc special command.
- The default value of uuuunnnniiiitttt is 0. If _n_a_m_e is omitted then RRRREEEEPPPPLLLLYYYY is
- used as the default name. If the first argument contains a ????,
- the remainder of this word is used as a prompt when the shell is
- interactive. If the given file descriptor is open for writing
- and is a terminal device then the prompt is placed on this unit.
- Otherwise the prompt is issued on file descriptor 2. The return
- code is 0 unless an end-of-file is encountered.
-
- rrrreeeeaaaaddddoooonnnnllllyyyy [ _n_a_m_e[=_v_a_l_u_e] ... ]
- The given _n_a_m_es are marked _r_e_a_d_o_n_l_y and the values of the these
- _n_a_m_es may not be changed by subsequent assignment. If no
- arguments are given, a list of all _r_e_a_d_o_n_l_y names is printed.
-
- rrrreeeettttuuuurrrrnnnn [ _n ]
- Causes a function to exit with the return value specified by _n.
- If _n is omitted, the return status is that of the last command
- executed.
-
- sssseeeetttt [ [----||||++++]aaaaeeeeffffkkkkmmmmnnnnttttuuuuvvvvxxxx ] [ ----oooo ooooppppttttiiiioooonnnn ] [ _a_r_g ... ]
-
- ----aaaa Mark variables which are modified or created for export.
-
- ----eeee Exit immediately if a command exits with a non-zero exit
- status.
-
- ----ffff Disable file name generation
-
- ----kkkk All keyword arguments are placed in the environment for a
- command, not just those that precede the command name.
-
- ----mmmm For those variables marked as mmmmssssddddoooossss variables, the values
- are exported to child processes with the slashes replaced by
- \\\\s. Most MSDOS utilities do not care if a file name
- contains a slash or \\\\ as a directory separator. However,
- some like the _l_i_n_k_e_r require \\\\s in the value of the LLLLIIIIBBBB
-
-
- - 28 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- variable.
-
- ----nnnn Read commands but do not execute them.
-
- ----oooo ooooppppttttiiiioooonnnn
- The argument that follows this option can be one of the
- following option names:
-
- aaaalllllllleeeexxxxppppoooorrrrtttt
- Same as ----aaaa....
-
- bbbbeeeellllllll Enable alarm bell on errors
-
- eeeerrrrrrrreeeexxxxiiiitttt
- Same as ----eeee....
-
- hhhhaaaallllffffhhhheeeeiiiigggghhhhtttt
- Set cursor to halfheight when in insert mode. If off,
- a full height cursor is used.
-
- iiiiggggnnnnoooorrrreeeeeeeeooooffff
- The shell will not exit on end-of-file. The command
- exit must be used.
-
- iiiinnnnsssseeeerrrrttttmmmmooooddddeeee
- Set the default edit mode to insert rather than
- overwrite.
-
- kkkkeeeeyyyywwwwoooorrrrdddd
- Same as ----kkkk....
-
- mmmmaaaarrrrkkkkddddiiiirrrrssss
- Appends a / (slash) to all directory names that are a
- result of file name substitution.
-
- nnnnoooocccclllloooobbbbbbbbeeeerrrr
- Prevents redirection >>>> from truncating existing files.
- A vertical bar must follow the redirection symbol ((((>>>>||||))))
- to truncate a file when this option is turned on.
-
- nnnnooooeeeexxxxeeeecccc
- Same as ----nnnn....
-
- nnnnoooogggglllloooobbbb
- Same as ----ffff....
-
- nnnnoooouuuunnnnsssseeeetttt
- Same as ----uuuu....
-
- pppprrrriiiivvvviiiilllleeeeggggeeeedddd
- Same as ----pppp....
-
-
- - 29 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- ttttrrrraaaacccckkkkaaaallllllll
- Same as ----hhhh....
-
- vvvveeeerrrrbbbboooosssseeee
- Same as ----vvvv....
-
- xxxxttttrrrraaaacccceeee
- Same as ----xxxx....
-
- ----tttt Exit after reading and executing one command.
-
- ----uuuu Treat unset variables as an error when substituting.
-
- ----vvvv Print shell input lines as they are read.
-
- ----xxxx Print commands and their arguments as they are executed.
-
- -------- Do not change any of the flags; useful in setting $$$$1111 to ----.
-
- Using ++++ rather than ---- causes these flags to be turned off.
- These flags can also be used upon invocation of the shell.
- The current set of flags may be found in $$$$----. The remaining
- arguments are positional parameters and are assigned, in
- order, to $$$$1111, $$$$2222, .... If no arguments are given the values
- of all names are printed.
-
- sssshhhhiiiifffftttt [ _n ]
- The positional parameters from $$$$nnnn++++1111 ... are renamed $$$$1111 .... If
- _n is not given, it is assumed to be 1.
-
- ssssttttaaaarrrrtttt [ ----ddddffffiiiiCCCCWWWWPPPPFFFF ] [ ----tttt ttttiiiittttlllleeee ] [ _p_r_o_g_r_a_m [ _a_r_g_u_m_e_n_t_s.. ] ]
- This command (which is only available under OS/2) starts an OS/2
- _p_r_o_g_r_a_m in a new session. If no _p_r_o_g_r_a_m and _a_r_g_u_m_e_n_t_s parameters
- are entered, the shell is started unless the -C option has been
- used to select the OS/2 command processor.
-
- The arguments changes the way the shell starts the session as
- follows:
-
- ----dddd Normally, command are started by invoking the shell in the
- new session. This option invokes the command directly.
-
- ----ffff The program becomes the foreground session. If this
- parameter is not specified, the program becomes a background
- session.
-
- ----iiii The new session will inherit the original environment of the
- shell instead of the current environment.
-
- ----tttt ttttiiiittttlllleeee
- Sets the _t_i_t_l_e of the new session.
-
-
- - 30 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- ----FFFF This application is a full-screen application that must run
- in a separate session independent of Presentation Manager.
-
- ----WWWW This is an OS/2 application that runs within a Presentation
- Manager window.
-
- ----PPPP This application is started as a Presentation Manager
- application.
-
- ----CCCC Use the OS/2 command processor instead of the shell.
-
- sssswwwwaaaapppp [ _o_p_t_i_o_n_s ]
- This command (which is only available under MS-DOS) defines how
- the shell will handle swapping itself to reduce its memory
- requirements whilst other programs execute. The options are
-
- ooooffffffff Disable swapping. The shell remains in memory whilst the
- child is running and reduces the available memory by about
- 200K (depending on the size of the environment and history).
-
- oooonnnn Enable all devices. The shell will swap out to either
- expanded or extended memory or to disk, execute the command
- and then swap back in. Whilest swapped, the shell reduces
- the available memory by about 3K.
-
- eeeexxxxppppaaaannnndddd
- Enable swapping to Expanded Memory. The EMS driver must
- exist on your system for this to work.
-
- eeeexxxxtttteeeennnndddd [ _s_t_a_r_t _a_d_d_r_e_s_s ]
- Enable swapping to Extended Memory. If you have an XMS
- driver on your system, the shell will use the XMS driver.
- Otherwise, the BIOS Interrupt 15 interface is used. The
- optional start address defines the based address in the
- Extended Memory at which point the shell writes its swap
- area when the BIOS interface is used. The default location
- is _0_x_1_0_0_0_0_0.
-
- ddddiiiisssskkkk Enable swapping to disk. The shell creates a temporary file
- and saves itself in it. On completion, the file is deleted.
- This is the slowest method of swapping.
-
- With no options, the current swapping options are displayed.
-
- tttteeeesssstttt _e_x_p_r or [[[[ _e_x_p_r ]]]]
- Evaluate conditional expressions. TTTTeeeesssstttt evaluates the expression
- _e_x_p_r and, if its value is true, returns a zero (true) exit
- status; otherwise, a non-zero (false) exit status is returned;
- tttteeeesssstttt also returns a non-zero exit status if there are no
- arguments. The primitives are the same as for the [[[[[[[[ _e_x_p_r_e_s_s_i_o_n
- ]]]]]]]] command, except that -_a and -_o are not primitives, but are
-
-
- - 31 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- used to combine operators (see tttteeeesssstttt ((((1111))))). -_a is the binary aaaannnndddd
- operator and -_o is the binary oooorrrr operator.
-
- Notice that all the operators and flags are separate arguments to
- tttteeeesssstttt. Notice also that parentheses are meaningful to the shell
- and, therefore, must be escaped.
-
- ttttrrrraaaapppp [ _a_r_g ] [ _S_i_g_n_a_l_N_u_m_b_e_r ] ...
- The command _a_r_g is to be read and executed when the shell
- receives signal(s) _S_i_g_n_a_l_N_u_m_b_e_r. (Note that _a_r_g is scanned once
- when the trap is set and once when the trap is taken.) Trap
- commands are executed in order of signal number. Any attempt to
- set a trap on a signal that was ignored on entry to the current
- shell is ineffective. If _a_r_g is absent all trap(s) _S_i_g_n_a_l_N_u_m_b_e_r
- are reset to their original values. If _a_r_g is the null string
- this signal is ignored by the shell and by the commands it
- invokes. If _S_i_g_n_a_l_N_u_m_b_e_r is DDDDEEEEBBBBUUUUGGGG then _a_r_g will be executed
- after each command. If _S_i_g_n_a_l_N_u_m_b_e_r is EEEERRRRRRRR, _a_r_g will be executed
- whenever a command has a non-zero exit code. If _S_i_g_n_a_l_N_u_m_b_e_r is
- 0 or EEEEXXXXIIIITTTT and the trap statement is executed inside the body of a
- function, the command _a_r_g is executed after the function
- completes. If _S_i_g_n_a_l_N_u_m_b_e_r is 0 or EEEEXXXXIIIITTTT for a trap set outside
- any function, the command _a_r_g is executed on exit from the shell.
- The ttttrrrraaaapppp command with no arguments prints a list of commands
- associated with each signal number.
-
- ttttrrrruuuueeee No effect; the command does nothing. A zero exit code is
- returned.
-
- ttttyyyyppppeeeesssseeeetttt [ ----HHHHLLLLRRRRZZZZffffiiiillllpppprrrrttttuuuuxxxx[nnnn] [ nnnnaaaammmmeeee[ ====vvvvaaaalllluuuueeee ] ] ... ]
- When invoked inside a function, a new instance of the parameter
- name is created. The parameter value and type are restored when
- the function completes. The following list of attributes may be
- specified:
-
- ----HHHH This flag provides UNIX to host-name file mapping on non-
- UNIX machines (see mmmmssssddddoooossss command).
-
- ----LLLL Left justify and remove leading blanks from value. If nnnn is
- non-zero it defines the width of the field, otherwise it is
- determined by the width of the value of first assignment.
- When the parameter is assigned to, it is filled on the right
- with blanks or truncated, if necessary, to fit into the
- field. Leading zeros are removed if the ----ZZZZ flag is also
- set. The ----RRRR flag is turned off.
-
- ----RRRR Right justify and fill with leading blanks. If nnnn is non-
- zero, it defines the width of the field, otherwise it is
- determined by the width of the value of first assignment.
- The field is left filled with blanks or truncated from the
- end if the parameter is reassigned. The ----LLLL flag is turned
-
-
- - 32 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- off.
-
- ----ZZZZ Right justify and fill with leading zeros if the first non-
- blank character is a digit and the ----LLLL flag has not been set.
- If nnnn is non-zero, it defines the width of the field,
- otherwise it is determined by the width of the value of
- first assignment.
-
- ----ffff The names refer to function names rather than parameter
- names. No assignments can be made and the only other valid
- flags are ----tttt, which turns on execution tracing for this
- function and ----xxxx, to allow the function to remain in effect
- across shell procedures executed in the same process
- environment.
-
- ----iiii Parameter is an integer. This makes arithmetic faster. If
- nnnn is non-zero it defines the output arithmetic base,
- otherwise the first assignment determines the output base.
-
- ----llll All upper-case characters converted to lower-case. The
- upper-case flag, ----uuuu is turned off.
-
- ----pppp The output of this command, if any, is written onto the
- two-way pipe. TTTThhhhiiiissss ooooppppttttiiiioooonnnn hhhhaaaassss nnnnoooo eeeeffffffffeeeecccctttt iiiinnnn tttthhhheeee SSSShhhheeeellllllll.
-
- ----rrrr The given names are marked readonly and these names cannot
- be changed by subsequent assignment.
-
- ----tttt Tags the named parameters. Tags are user definable and have
- no special meaning to the shell.
-
- ----uuuu All lower-case characters are converted to upper-case
- characters. The lower-case flag, ----llll is turned off.
-
- ----xxxx The given names are marked for automatic export to the
- environment of subsequently-executed commands.
-
- Using + rather than - causes these flags to be turned off. If no
- name arguments are given but flags are specified, a list of names
- (and optionally the values) of the parameters which have these
- flags set is printed. (Using + rather than - keeps the values to
- be printed.) If no names and flags are given, the names and
- attributes of all parameters are printed.
-
- uuuummmmaaaasssskkkk [ _n_n_n ]
- The user file-creation mask is set to _n_n_n (see _u_m_a_s_k(2)). If _n_n_n
- is omitted, the current value of the mask is printed.
-
- uuuunnnnaaaalllliiiiaaaassss _n_a_m_e ...
- The aliases given by the list of _n_a_m_es are removed from the alias
- list.
-
-
- - 33 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- uuuunnnnffffuuuunnnnccccttttiiiioooonnnn _n_a_m_e ...
- For each _n_a_m_e, remove the corresponding function.
-
- uuuunnnnsssseeeetttt [ ----ffff ] _n_a_m_e ...
- The parameters given by the list of _n_a_m_es are unassigned (their
- values and attributes are erased). The following variables, as
- well as those with a read-only attribute cannot be unset: PPPPAAAATTTTHHHH,
- PPPPSSSS1111, PPPPSSSS2222, and IIIIFFFFSSSS. If the -f flag is set, then the names refer
- to function names and the functions are removed.
-
- vvvveeeerrrr Display the current version of the shell.
-
- wwwwhhhheeeennnncccceeee [ ----ppppvvvv ] [ _n_a_m_e ... ]
- ttttyyyyppppeeee [ ----pppp ] [ _n_a_m_e ... ]
- For each _n_a_m_e specified, indicate how it would be interpreted if
- used as a command name. Note that ttttyyyyppppeeee is a shorthand for wwwwhhhheeeennnncccceeee
- ----vvvv.
-
- ----pppp Does a path search for _n_a_m_e even if the name is an alias, a
- function, or a reserved word.
-
- ----vvvv Produces a more verbose report.
-
- IIIInnnnvvvvooooccccaaaattttiiiioooonnnn
- If the shell is invoked through _e_x_e_c(2) and the first character of
- argument zero is ---- or the ----0000(zero) switch is in the invokation line,
- commands are initially read from ////eeeettttcccc////pppprrrrooooffffiiiilllleeee....sssshhhh and from
- $$$$HHHHOOOOMMMMEEEE////pppprrrrooooffffiiiilllleeee....sssshhhh, if such files exist. Next, commands are read from
- the file named by performing parameter substitution on the value of
- the environment parameter EEEENNNNVVVV if the file exists. Thereafter,
- commands are read as described below, which is also the case when the
- shell is invoked as ////bbbbiiiinnnn////sssshhhh. The flags below are interpreted by the
- shell on invocation only; Note that unless the ----cccc or ----ssss flag is
- specified, the first argument is assumed to be the name of a file
- containing commands, and the remaining arguments are passed as
- positional parameters to that command file:
-
- ----cccc string If the ----cccc flag is present commands are read from _s_t_r_i_n_g.
-
- ----ssss If the ----ssss flag is present or if no arguments remain commands
- are read from the standard input. Any remaining arguments
- specify the positional parameters. Shell output (except for
- _S_p_e_c_i_a_l _C_o_m_m_a_n_d_s) is written to file descriptor 2.
-
- ----iiii If the ----iiii flag is present or if the shell input and output
- are attached to a terminal, this shell is _i_n_t_e_r_a_c_t_i_v_e. In
- this case, the TERMINATE signal is ignored and the INTERRUPT
- signal is caught and ignored. In all cases, the QUIT signal
- is ignored by the shell.
-
-
-
-
- - 34 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- ----rrrr If the ----rrrr flag is present, the shell is a restricted shell.
-
- ----0000(zero) If the ----0000(zero) flag is present, this has the same effect as
- starting the shell with the first character of argument zero
- as a ---- (see above).
-
- ----RRRR If the ----RRRR flag is present, the shell is the _r_o_o_t shell and
- cannot be terminated using exit. Under MSDOS, the system
- must be re-booted. Under OS/2, the shell must be killed by
- an external program.
-
- The remaining flags and arguments are described under the sssseeeetttt command
- above.
-
- RRRRsssshhhh OOOOnnnnllllyyyy
- _R_s_h is used to set up login names and execution environments whose
- capabilities are more controlled than those of the standard shell.
- The actions of _r_s_h are identical to those of _s_h, except that the
- following are disallowed:
-
- Changing directory (see _c_d(1)),
- Setting the value of SSSSHHHHEEEELLLLLLLL, EEEENNNNVVVV, or $$$$PPPPAAAATTTTHHHH,
- Specifying path or command names containing ////,
- Redirecting output (>>>> and >>>>>>>>).
-
- The restrictions above are enforced after pppprrrrooooffffiiiilllleeee....sssshhhh and the EEEENNNNVVVV files
- are interpreted.
-
- When a command to be executed is found to be a shell procedure, _r_s_h
- invokes _s_h to execute it. Thus, it is possible to provide to the
- end-user shell procedures that have access to the full power of the
- standard shell, while imposing a limited menu of commands; this scheme
- assumes that the end-user does not have write and execute permissions
- in the same directory.
-
- The net effect of these rules is that the writer of the pppprrrrooooffffiiiilllleeee....sssshhhh has
- complete control over user actions, by performing guaranteed setup
- actions and leaving the user in an appropriate directory (probably _n_o_t
- the login directory).
-
- The system administrator often sets up a directory of commands (i.e.,
- ////uuuussssrrrr////rrrrbbbbiiiinnnn) that can be safely invoked by _r_s_h. Some systems also
- provide a restricted editor _r_e_d.
-
- EEEEXXXXIIIITTTT SSSSTTTTAAAATTTTUUUUSSSS
- Errors detected by the shell, such as syntax errors, cause the shell
- to return a non-zero exit status. If the shell is being used non-
- interactively execution of the shell file is abandoned. Otherwise,
- the shell returns the exit status of the last command executed (see
- also the eeeexxxxiiiitttt command above).
-
-
-
- - 35 - Formatted: April 14, 1992
-
-
-
- SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
- DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
-
-
-
- FFFFIIIILLLLEEEESSSS
- /etc/profile.sh
- $HOME/profile.sh
- $HOME/history.sh.
- $TMP/sh*.tmp
- ??/sh.ini
-
- CCCCRRRRIIIITTTTIIIICCCCAAAALLLL EEEERRRRRRRROOOORRRRSSSS
- The Shell provide a Critical Error Handler (Interrupt 24) similar to
- the standard MSDOS handler. In addition to the standard message, the
- handler also displays the Extended Error Code information in
- hexadecimal.
-
- LLLLIIIIMMMMIIIIIIIITTTTAAAATTTTIIIIOOOONNNNSSSS
- Under MS-DOS, any TSR (Terminate Stay Resident) programs must be
- loaded before loading _S_h as the shell will overwrite the TSR when it
- reloads itself after swapping out.
-
- Under OS/2, asynchronous commands are supported to a degree. However,
- this is very limited because of the nature of the forking commands
- under OS/2 which does not match the UNIX model. This difference has
- also meant that pipes (as in MS-DOS) are implemented as files and not
- OS/2 pipes. For more details, see the source code.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- cd(1), env(1), test(1), umask(1).
- dup(2), exec(2), pipe(2), signal(2), umask(2), wait(2), strtol(3),
- profile(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 _M_a_n_u_a_l.
-
- AAAACCCCKKKKNNNNOOOOWWWWLLLLEEEEDDDDGGGGEEEEMMMMEEEENNNNTTTTSSSS
- This program is based on ideas, code or parts of code developed by:
-
- David Korn and Steve Bourne (the original ideas)
- Charles Forsyth (the original source for the MINIX Shell program)
- Erik Baalbergen (the code for the test function)
- Paul Falstad (the code for the maths functions)
-
- In addition, a very large number of people (too many to mention) who
- have been involved in testing and debugging the program.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 36 - Formatted: April 14, 1992
-
-