today, Andreas Buschka learnt that the Oxford comma is an american thing
(except for exactly the University of Oxford or to disambiguate)
This commit is contained in:
		
							
								
								
									
										239
									
								
								mksh.1
									
									
									
									
									
								
							
							
						
						
									
										239
									
								
								mksh.1
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| .\" $MirOS: src/bin/mksh/mksh.1,v 1.416 2016/08/24 20:40:00 tg Exp $ | ||||
| .\" $MirOS: src/bin/mksh/mksh.1,v 1.417 2016/09/29 09:04:56 tg Exp $ | ||||
| .\" $OpenBSD: ksh.1,v 1.160 2015/07/04 13:27:04 feinerer Exp $ | ||||
| .\"- | ||||
| .\" Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, | ||||
| @@ -76,7 +76,7 @@ | ||||
| .\" with -mandoc, it might implement .Mx itself, but we want to | ||||
| .\" use our own definition. And .Dd must come *first*, always. | ||||
| .\" | ||||
| .Dd $Mdocdate: August 24 2016 $ | ||||
| .Dd $Mdocdate: September 29 2016 $ | ||||
| .\" | ||||
| .\" Check which macro package we use, and do other -mdoc setup. | ||||
| .\" | ||||
| @@ -223,7 +223,7 @@ to a | ||||
| .Xr tty 4 . | ||||
| An interactive shell has job control enabled, ignores the | ||||
| .Dv SIGINT , | ||||
| .Dv SIGQUIT , | ||||
| .Dv SIGQUIT | ||||
| and | ||||
| .Dv SIGTERM | ||||
| signals, and prints prompts before reading input (see the | ||||
| @@ -286,7 +286,7 @@ command is disabled. | ||||
| .It | ||||
| The | ||||
| .Ev SHELL , | ||||
| .Ev ENV , | ||||
| .Ev ENV | ||||
| and | ||||
| .Ev PATH | ||||
| parameters cannot be changed. | ||||
| @@ -360,7 +360,7 @@ The exit status of the shell is 127 if the command file specified on the | ||||
| command line could not be opened, or non-zero if a fatal syntax error | ||||
| occurred during the execution of a script. | ||||
| In the absence of fatal errors, | ||||
| the exit status is that of the last command executed, or zero, if no | ||||
| the exit status is that of the last command executed, or zero if no | ||||
| command is executed. | ||||
| .Ss Startup files | ||||
| For the actual location of these files, see | ||||
| @@ -383,14 +383,14 @@ The shell begins parsing its input by removing any backslash-newline | ||||
| combinations, then breaking it into | ||||
| .Em words . | ||||
| Words (which are sequences of characters) are delimited by unquoted whitespace | ||||
| characters (space, tab, and newline) or meta-characters | ||||
| characters (space, tab and newline) or meta-characters | ||||
| .Po | ||||
| .Ql \*(Lt , | ||||
| .Ql \*(Gt , | ||||
| .Ql \*(Ba , | ||||
| .Ql \&; , | ||||
| .Ql \&( , | ||||
| .Ql \&) , | ||||
| .Ql \&) | ||||
| and | ||||
| .Ql & | ||||
| .Pc . | ||||
| @@ -455,7 +455,7 @@ shell and must be quoted if they are to represent themselves: | ||||
| .Ql { , | ||||
| .Ql } , | ||||
| .Ql * , | ||||
| .Ql \&? , | ||||
| .Ql \&? | ||||
| and | ||||
| .Ql \&[ . | ||||
| The first three of these are the above mentioned quoting characters (see | ||||
| @@ -467,7 +467,7 @@ the | ||||
| .Ql # | ||||
| up to the nearest newline is ignored; | ||||
| .Ql $ | ||||
| is used to introduce parameter, command, and arithmetic substitutions (see | ||||
| is used to introduce parameter, command and arithmetic substitutions (see | ||||
| .Sx Substitution | ||||
| below); | ||||
| .Ql \` | ||||
| @@ -488,7 +488,7 @@ alternations (see | ||||
| below); | ||||
| and finally, | ||||
| .Ql * , | ||||
| .Ql \&? , | ||||
| .Ql \&? | ||||
| and | ||||
| .Ql \&[ | ||||
| are used in file name generation (see | ||||
| @@ -504,7 +504,7 @@ such as | ||||
| .Ic for | ||||
| and | ||||
| .Ic if | ||||
| statements, grouping constructs, and function definitions. | ||||
| statements, grouping constructs and function definitions. | ||||
| .Pp | ||||
| A simple-command consists of some combination of parameter assignments | ||||
| (see | ||||
| @@ -512,12 +512,12 @@ A simple-command consists of some combination of parameter assignments | ||||
| below), | ||||
| input/output redirections (see | ||||
| .Sx Input/output redirections | ||||
| below), | ||||
| below) | ||||
| and command words; the only restriction is that parameter assignments come | ||||
| before any command words. | ||||
| The command words, if any, define the command | ||||
| that is to be executed and its arguments. | ||||
| The command may be a shell built-in command, a function, | ||||
| The command may be a shell built-in command, a function | ||||
| or an external command | ||||
| (i.e. a separate executable file that is located using the | ||||
| .Ev PATH | ||||
| @@ -564,7 +564,7 @@ tokens: | ||||
| .Dq Li && , | ||||
| .Dq Li \*(Ba\*(Ba , | ||||
| .Dq Li & , | ||||
| .Dq Li \*(Ba& , | ||||
| .Dq Li \*(Ba& | ||||
| and | ||||
| .Dq Li \&; . | ||||
| The first two are for conditional execution: | ||||
| @@ -585,7 +585,7 @@ and | ||||
| .Dq Li \*(Ba\*(Ba | ||||
| have equal precedence which is higher than that of | ||||
| .Dq Li & , | ||||
| .Dq Li \*(Ba& , | ||||
| .Dq Li \*(Ba& | ||||
| and | ||||
| .Dq Li \&; , | ||||
| which also have equal precedence. | ||||
| @@ -629,7 +629,7 @@ and | ||||
| .Dq Li \*(Ba\*(Ba | ||||
| operators, while it need not follow | ||||
| .Dq Li & , | ||||
| .Dq Li \*(Ba& , | ||||
| .Dq Li \*(Ba& | ||||
| or | ||||
| .Dq Li \&; . | ||||
| The exit status of a list is that of the last command executed, with the | ||||
| @@ -649,7 +649,7 @@ elif     for      select       while     } | ||||
| .Pp | ||||
| In the following compound command descriptions, command lists (denoted as | ||||
| .Em list ) | ||||
| that are followed by reserved words must end with a semicolon, a newline, or | ||||
| that are followed by reserved words must end with a semicolon, a newline or | ||||
| a (syntactically correct) reserved word. | ||||
| For example, the following are all valid: | ||||
| .Bd -literal -offset indent | ||||
| @@ -706,7 +706,7 @@ are dropped. | ||||
| Note that any unquoted space before and after a pattern is | ||||
| stripped; any space within a pattern must be quoted. | ||||
| Both the word and the | ||||
| patterns are subject to parameter, command, and arithmetic substitution, as | ||||
| patterns are subject to parameter, command and arithmetic substitution, as | ||||
| well as tilde substitution. | ||||
| .Pp | ||||
| For historical reasons, open and close braces may be used instead of | ||||
| @@ -948,7 +948,7 @@ Operators (e.g.\& | ||||
| .Dq Li \&! ) | ||||
| must be unquoted. | ||||
| .It | ||||
| Parameter, command, and arithmetic substitutions are performed as expressions | ||||
| Parameter, command and arithmetic substitutions are performed as expressions | ||||
| are evaluated and lazy expression evaluation is used for the | ||||
| .Dq Li && | ||||
| and | ||||
| @@ -999,14 +999,14 @@ Third, a double quote | ||||
| .Pq Ql \&" | ||||
| quotes all characters, except | ||||
| .Ql $ , | ||||
| .Ql \e , | ||||
| .Ql \e | ||||
| and | ||||
| .Ql \` , | ||||
| up to the next unescaped double quote. | ||||
| .Ql $ | ||||
| and | ||||
| .Ql \` | ||||
| inside double quotes have their usual meaning (i.e. parameter, arithmetic, | ||||
| inside double quotes have their usual meaning (i.e. parameter, arithmetic | ||||
| or command substitution) except no field splitting is carried out on the | ||||
| results of double-quoted substitutions, and the old-style form of command | ||||
| substitution has backslash-quoting for double quotes enabled. | ||||
| @@ -1015,7 +1015,7 @@ If a | ||||
| inside a double-quoted string is followed by | ||||
| .Ql \&" , | ||||
| .Ql $ , | ||||
| .Ql \e , | ||||
| .Ql \e | ||||
| or | ||||
| .Ql \` , | ||||
| only the | ||||
| @@ -1052,7 +1052,7 @@ These include | ||||
| .Dq Li \er , | ||||
| .Dq Li \et , | ||||
| .Dq Li \eU######## , | ||||
| .Dq Li \eu#### , | ||||
| .Dq Li \eu#### | ||||
| and | ||||
| .Dq Li \ev . | ||||
| For | ||||
| @@ -1072,7 +1072,7 @@ In the | ||||
| .Ic print | ||||
| builtin mode, | ||||
| .Dq Li \e" , | ||||
| .Dq Li \e\*(aq , | ||||
| .Dq Li \e\*(aq | ||||
| and | ||||
| .Dq Li \e? | ||||
| are explicitly excluded; | ||||
| @@ -1180,14 +1180,14 @@ automatically tracked: | ||||
| .Xr rm 1 , | ||||
| .Xr sed 1 , | ||||
| .Xr sh 1 , | ||||
| .Xr vi 1 , | ||||
| .Xr vi 1 | ||||
| and | ||||
| .Xr who 1 . | ||||
| .Ss Substitution | ||||
| The first step the shell takes in executing a simple-command is to perform | ||||
| substitutions on the words of the command. | ||||
| There are three kinds of | ||||
| substitution: parameter, command, and arithmetic. | ||||
| substitution: parameter, command and arithmetic. | ||||
| Parameter substitutions, | ||||
| which are described in detail in the next section, take the form | ||||
| .Pf $ Ns Ar name | ||||
| @@ -1231,7 +1231,7 @@ parameter. | ||||
| The | ||||
| .Ev IFS | ||||
| parameter specifies a list of octets which are used to break a string up | ||||
| into several words; any octets from the set space, tab, and newline that | ||||
| into several words; any octets from the set space, tab and newline that | ||||
| appear in the | ||||
| .Ev IFS | ||||
| octets are called | ||||
| @@ -1251,20 +1251,19 @@ whitespace does create an empty field. | ||||
| Example: If | ||||
| .Ev IFS | ||||
| is set to | ||||
| .Dq Li \*(Ltspace\*(Gt: , | ||||
| .Dq Li \*(Ltspace\*(Gt: | ||||
| and VAR is set to | ||||
| .Dq Li \*(Ltspace\*(GtA\*(Ltspace\*(Gt:\*(Ltspace\*(Gt\*(Ltspace\*(GtB::D , | ||||
| the substitution for $VAR results in four fields: | ||||
| .Dq Li A , | ||||
| .Dq Li B , | ||||
| .Dq | ||||
| (an empty field), | ||||
| and | ||||
| (an empty field) and | ||||
| .Dq Li D . | ||||
| Note that if the | ||||
| .Ev IFS | ||||
| parameter is set to the empty string, no field splitting is done; | ||||
| if it is unset, the default value of space, tab, and newline is used. | ||||
| if it is unset, the default value of space, tab and newline is used. | ||||
| .Pp | ||||
| Also, note that the field splitting applies only to the immediate result of | ||||
| the substitution. | ||||
| @@ -1272,14 +1271,14 @@ Using the previous example, the substitution for $VAR:E | ||||
| results in the fields: | ||||
| .Dq Li A , | ||||
| .Dq Li B , | ||||
| .Dq , | ||||
| .Dq | ||||
| and | ||||
| .Dq Li D:E , | ||||
| not | ||||
| .Dq Li A , | ||||
| .Dq Li B , | ||||
| .Dq , | ||||
| .Dq Li D , | ||||
| .Dq Li D | ||||
| and | ||||
| .Dq Li E . | ||||
| This behavior is POSIX compliant, but incompatible with some other shell | ||||
| @@ -1307,7 +1306,7 @@ form, a | ||||
| .Ql \e | ||||
| followed by any of | ||||
| .Ql $ , | ||||
| .Ql \` , | ||||
| .Ql \` | ||||
| or | ||||
| .Ql \e | ||||
| is stripped (as is | ||||
| @@ -1372,7 +1371,7 @@ That is, they are a 32-bit unsigned integer. | ||||
| .Pp | ||||
| Parameter substitutions take the form | ||||
| .Pf $ Ns Ar name , | ||||
| .Pf ${ Ns Ar name Ns } , | ||||
| .Pf ${ Ns Ar name Ns } | ||||
| or | ||||
| .Sm off | ||||
| .Pf ${ Ar name Oo Ar expr Oc } | ||||
| @@ -1396,7 +1395,7 @@ is set, in which case an error occurs. | ||||
| Parameters can be assigned values in a number of ways. | ||||
| First, the shell implicitly sets some parameters like | ||||
| .Dq Li # , | ||||
| .Dq Li PWD , | ||||
| .Dq Li PWD | ||||
| and | ||||
| .Dq Li $ ; | ||||
| this is the only way the special single character parameters are set. | ||||
| @@ -1420,7 +1419,7 @@ is also recognised; the old and new values are immediately concatenated. | ||||
| The fourth way of setting a parameter is with the | ||||
| .Ic export , | ||||
| .Ic global , | ||||
| .Ic readonly , | ||||
| .Ic readonly | ||||
| and | ||||
| .Ic typeset | ||||
| commands; see their descriptions in the | ||||
| @@ -1432,7 +1431,7 @@ and | ||||
| .Ic select | ||||
| loops set parameters as well as the | ||||
| .Ic getopts , | ||||
| .Ic read , | ||||
| .Ic read | ||||
| and | ||||
| .Ic set Fl A | ||||
| commands. | ||||
| @@ -1504,7 +1503,7 @@ it is substituted; otherwise, | ||||
| is printed on standard error (preceded by | ||||
| .Ar name : ) | ||||
| and an error occurs (normally causing termination of a shell script, function, | ||||
| or script sourced using the | ||||
| or a script sourced using the | ||||
| .Dq Li \&. | ||||
| built-in). | ||||
| If | ||||
| @@ -1530,7 +1529,7 @@ can be omitted, in which case the conditions only depend on | ||||
| being set (as opposed to set and not empty). | ||||
| If | ||||
| .Ar word | ||||
| is needed, parameter, command, arithmetic, and tilde substitution are performed | ||||
| is needed, parameter, command, arithmetic and tilde substitution are performed | ||||
| on it; if | ||||
| .Ar word | ||||
| is not needed, it is not evaluated. | ||||
| @@ -1547,7 +1546,7 @@ The number of positional parameters if | ||||
| .Ar name | ||||
| is | ||||
| .Dq Li * , | ||||
| .Dq Li @ , | ||||
| .Dq Li @ | ||||
| or not specified; otherwise the length | ||||
| .Pq in characters | ||||
| of the string value of parameter | ||||
| @@ -1752,7 +1751,7 @@ If no background processes have been started, the parameter is not set. | ||||
| .It Ev \&# | ||||
| The number of positional parameters ($1, $2, etc.). | ||||
| .It Ev \&$ | ||||
| The PID of the shell, or the PID of the original shell if it is a subshell. | ||||
| The PID of the shell or, if it is a subshell, the PID of the original shell. | ||||
| Do | ||||
| .Em NOT | ||||
| use this mechanism for generating temporary file names; see | ||||
| @@ -1844,9 +1843,9 @@ value as reported by | ||||
| .Xr stty 1 | ||||
| is non-zero and sane enough (minimum is 12x3); similar for | ||||
| .Ev LINES . | ||||
| This parameter is used by the interactive line editing modes, and by the | ||||
| This parameter is used by the interactive line editing modes and by the | ||||
| .Ic select , | ||||
| .Ic set Fl o , | ||||
| .Ic set Fl o | ||||
| and | ||||
| .Ic kill Fl l | ||||
| commands to format information columns. | ||||
| @@ -1920,7 +1919,7 @@ below). | ||||
| .It Ev IFS | ||||
| Internal field separator, used during substitution and by the | ||||
| .Ic read | ||||
| command, to split values into distinct arguments; normally set to space, tab, | ||||
| command, to split values into distinct arguments; normally set to space, tab | ||||
| and newline. | ||||
| See | ||||
| .Sx Substitution | ||||
| @@ -2018,7 +2017,7 @@ See | ||||
| The previous working directory. | ||||
| Unset if | ||||
| .Ic cd | ||||
| has not successfully changed directories since the shell started, or if the | ||||
| has not successfully changed directories since the shell started or if the | ||||
| shell doesn't know where it is. | ||||
| .It Ev OPTARG | ||||
| When using | ||||
| @@ -2048,7 +2047,7 @@ one by one, of the last pipeline run in the foreground. | ||||
| The process ID of the shell's parent. | ||||
| .It Ev PS1 | ||||
| The primary prompt for interactive shells. | ||||
| Parameter, command, and arithmetic | ||||
| Parameter, command and arithmetic | ||||
| substitutions are performed, and | ||||
| .Ql \&! | ||||
| is replaced with the current command number (see the | ||||
| @@ -2108,7 +2107,7 @@ if you did not have any non-printing characters. | ||||
| Since Backslashes and other special characters may be | ||||
| interpreted by the shell, to set | ||||
| .Ev PS1 | ||||
| either escape the backslash itself, | ||||
| either escape the backslash itself | ||||
| or use double quotes. | ||||
| The latter is more practical. | ||||
| This is a more complex example, | ||||
| @@ -2144,7 +2143,7 @@ The default is | ||||
| Used to prefix commands that are printed during execution tracing (see the | ||||
| .Ic set Fl x | ||||
| command below). | ||||
| Parameter, command, and arithmetic substitutions are performed | ||||
| Parameter, command and arithmetic substitutions are performed | ||||
| before it is printed. | ||||
| The default is | ||||
| .Dq Li +\ \& . | ||||
| @@ -2179,7 +2178,7 @@ If the time is exceeded, the shell exits. | ||||
| .It Ev TMPDIR | ||||
| The directory temporary shell files are created in. | ||||
| If this parameter is not | ||||
| set, or does not contain the absolute path of a writable directory, temporary | ||||
| set or does not contain the absolute path of a writable directory, temporary | ||||
| files are created in | ||||
| .Pa /tmp . | ||||
| .It Ev USER_ID | ||||
| @@ -2193,12 +2192,12 @@ The characters following the tilde, up to the first | ||||
| .Ql / , | ||||
| if any, are assumed to be a login name. | ||||
| If the login name is empty, | ||||
| .Ql + , | ||||
| .Ql + | ||||
| or | ||||
| .Ql \- , | ||||
| the simplified value of the | ||||
| .Ev HOME , | ||||
| .Ev PWD , | ||||
| .Ev PWD | ||||
| or | ||||
| .Ev OLDPWD | ||||
| parameter is substituted, respectively. | ||||
| @@ -2215,7 +2214,7 @@ in the arguments of | ||||
| .Ic alias , | ||||
| .Ic export , | ||||
| .Ic global , | ||||
| .Ic readonly , | ||||
| .Ic readonly | ||||
| and | ||||
| .Ic typeset ) , | ||||
| tilde expansion is done after any assignment | ||||
| @@ -2227,7 +2226,7 @@ login names are also delimited by colons. | ||||
| The home directory of previously expanded login names are cached and re-used. | ||||
| The | ||||
| .Ic alias Fl d | ||||
| command may be used to list, change, and add to this cache (e.g.\& | ||||
| command may be used to list, change and add to this cache (e.g.\& | ||||
| .Ic alias \-d fac=/usr/local/facilities; cd \*(TIfac/bin ) . | ||||
| .Ss Brace expansion (alternation) | ||||
| Brace expressions take the following form: | ||||
| @@ -2244,7 +2243,7 @@ The expressions are expanded to | ||||
| .Ar N | ||||
| words, each of which is the concatenation of | ||||
| .Ar prefix , | ||||
| .Ar str Ns i , | ||||
| .Ar str Ns i | ||||
| and | ||||
| .Ar suffix | ||||
| (e.g.\& | ||||
| @@ -2252,7 +2251,7 @@ and | ||||
| expands to four words: | ||||
| .Dq Li ace , | ||||
| .Dq Li abXe , | ||||
| .Dq Li abYe , | ||||
| .Dq Li abYe | ||||
| and | ||||
| .Dq Li ade ) . | ||||
| As noted in the example, brace expressions can be nested and the resulting | ||||
| @@ -2271,7 +2270,7 @@ A file name pattern is a word containing one or more unquoted | ||||
| .Ql \&? , | ||||
| .Ql * , | ||||
| .Ql + , | ||||
| .Ql @ , | ||||
| .Ql @ | ||||
| or | ||||
| .Ql \&! | ||||
| characters or | ||||
| @@ -2343,7 +2342,7 @@ Example: The pattern | ||||
| .Ic ?(foo\*(Babar) | ||||
| only matches the strings | ||||
| .Dq , | ||||
| .Dq Li foo , | ||||
| .Dq Li foo | ||||
| and | ||||
| .Dq Li bar . | ||||
| .Sm off | ||||
| @@ -2387,7 +2386,7 @@ but | ||||
| .At | ||||
| .Nm ksh , | ||||
| Bourne | ||||
| .Nm sh , | ||||
| .Nm sh | ||||
| and GNU | ||||
| .Nm bash | ||||
| do. | ||||
| @@ -2409,8 +2408,8 @@ option is set, any directories that result from file name generation are marked | ||||
| with a trailing | ||||
| .Ql / . | ||||
| .Ss Input/output redirection | ||||
| When a command is executed, its standard input, standard output, and standard | ||||
| error (file descriptors 0, 1, and 2, respectively) are normally inherited from | ||||
| When a command is executed, its standard input, standard output and standard | ||||
| error (file descriptors 0, 1 and 2, respectively) are normally inherited from | ||||
| the shell. | ||||
| Three exceptions to this are commands in pipelines, for which | ||||
| standard input and/or standard output are those set up by the pipeline, | ||||
| @@ -2471,13 +2470,13 @@ If | ||||
| .Ar marker | ||||
| contains no quoted characters, the contents of the temporary file are processed | ||||
| as if enclosed in double quotes each time the command is executed, so | ||||
| parameter, command, and arithmetic substitutions are performed, along with | ||||
| parameter, command and arithmetic substitutions are performed, along with | ||||
| backslash | ||||
| .Pq Ql \e | ||||
| escapes for | ||||
| .Ql $ , | ||||
| .Ql \` , | ||||
| .Ql \e , | ||||
| .Ql \e | ||||
| and | ||||
| .Dq Li \enewline , | ||||
| but not for | ||||
| @@ -2547,7 +2546,7 @@ but a syntax error in GNU | ||||
| .Xc | ||||
| Same as | ||||
| .Ic \*(Gt\*(Ba Ns Ar file , | ||||
| .Ic \*(Gt\*(Gt Ns Ar file , | ||||
| .Ic \*(Gt\*(Gt Ns Ar file | ||||
| or | ||||
| .Ic \*(Gt& Ns Ar fd , | ||||
| followed by | ||||
| @@ -2562,11 +2561,11 @@ In any of the above redirections, the file descriptor that is redirected | ||||
| (i.e. standard input or standard output) | ||||
| can be explicitly given by preceding the | ||||
| redirection with a single digit. | ||||
| Parameter, command, and arithmetic | ||||
| substitutions, tilde substitutions, and (if the shell is interactive) | ||||
| Parameter, command and arithmetic | ||||
| substitutions, tilde substitutions, and, if the shell is interactive, | ||||
| file name generation are all performed on the | ||||
| .Ar file , | ||||
| .Ar marker , | ||||
| .Ar marker | ||||
| and | ||||
| .Ar fd | ||||
| arguments of redirections. | ||||
| @@ -2613,7 +2612,7 @@ character, in which case they use | ||||
| .Vt mksh_uari_t | ||||
| .Po a 32-bit unsigned integer Pc . | ||||
| .Pp | ||||
| Expressions may contain alpha-numeric parameter identifiers, array references, | ||||
| Expressions may contain alpha-numeric parameter identifiers, array references | ||||
| and integer constants and may be combined with the following C operators | ||||
| (listed and grouped in increasing order of precedence): | ||||
| .Pp | ||||
| @@ -2783,7 +2782,7 @@ Rotate left (right); the result is similar to shift, | ||||
| except that the bits shifted out at one end are shifted in | ||||
| at the other end, instead of zero or sign bits. | ||||
| .It + \- * / | ||||
| Addition, subtraction, multiplication, and division. | ||||
| Addition, subtraction, multiplication and division. | ||||
| .It % | ||||
| Remainder; the result is the symmetric remainder of the division of the left | ||||
| argument by the right. | ||||
| @@ -2992,9 +2991,9 @@ The EXIT trap, if set in a function, will be executed after the function | ||||
| returns. | ||||
| .El | ||||
| .Ss Command execution | ||||
| After evaluation of command-line arguments, redirections, and parameter | ||||
| After evaluation of command-line arguments, redirections and parameter | ||||
| assignments, the type of command is determined: a special built-in command, | ||||
| a function, a normal builtin, or the name of a file to execute found using the | ||||
| a function, a normal builtin or the name of a file to execute found using the | ||||
| .Ev PATH | ||||
| parameter. | ||||
| The checks are made in the above order. | ||||
| @@ -3202,7 +3201,7 @@ Exit the | ||||
| inner-most | ||||
| .Ic for , | ||||
| .Ic select , | ||||
| .Ic until , | ||||
| .Ic until | ||||
| or | ||||
| .Ic while | ||||
| loop. | ||||
| @@ -3304,7 +3303,7 @@ parameters are updated to reflect the current and old working directory, | ||||
| respectively. | ||||
| If the | ||||
| .Fl e | ||||
| option is set for physical filesystem traversal, and | ||||
| option is set for physical filesystem traversal and | ||||
| .Ev PWD | ||||
| could not be set, the exit code is 1; greater than 1 if an | ||||
| error occurred, 0 otherwise. | ||||
| @@ -3381,7 +3380,7 @@ Jumps to the beginning of the | ||||
| inner-most | ||||
| .Ic for , | ||||
| .Ic select , | ||||
| .Ic until , | ||||
| .Ic until | ||||
| or | ||||
| .Ic while | ||||
| loop. | ||||
| @@ -3517,7 +3516,7 @@ Without | ||||
| .Fl l , | ||||
| the selected commands are edited by the editor specified with the | ||||
| .Fl e | ||||
| option, or if no | ||||
| option or, if no | ||||
| .Fl e | ||||
| is specified, the editor specified by the | ||||
| .Ev FCEDIT | ||||
| @@ -3628,9 +3627,9 @@ invoked). | ||||
| .Pp | ||||
| Warning: Changing the value of the shell parameter | ||||
| .Ev OPTIND | ||||
| to a value other than 1, or parsing different sets of arguments without | ||||
| to a value other than 1 or parsing different sets of arguments without | ||||
| resetting | ||||
| .Ev OPTIND , | ||||
| .Ev OPTIND | ||||
| may lead to unexpected results. | ||||
| .Pp | ||||
| .It global Ar ... | ||||
| @@ -3682,7 +3681,7 @@ and the displayed job. | ||||
| .No { Ar job \*(Ba pid \*(Ba pgrp No } | ||||
| .Ar ... | ||||
| .Xc | ||||
| Send the specified signal to the specified jobs, process IDs, or process | ||||
| Send the specified signal to the specified jobs, process IDs or process | ||||
| groups. | ||||
| If no signal is specified, the | ||||
| .Dv TERM | ||||
| @@ -3700,8 +3699,8 @@ below for the format of | ||||
| .Xc | ||||
| Print the signal name corresponding to | ||||
| .Ar exit-status . | ||||
| If no arguments are specified, a list of all the signals, their numbers, and | ||||
| a short description of them are printed. | ||||
| If no arguments are specified, a list of all the signals with their numbers | ||||
| and a short description of each are printed. | ||||
| .Pp | ||||
| .It Ic let Op Ar expression ... | ||||
| Each expression is evaluated (see | ||||
| @@ -3738,7 +3737,7 @@ The file type may be | ||||
| .Cm b | ||||
| (block type device), | ||||
| .Cm c | ||||
| (character type device), | ||||
| (character type device) | ||||
| or | ||||
| .Cm p | ||||
| .Pq named pipe , Tn FIFO . | ||||
| @@ -4140,7 +4139,7 @@ This does not apply to commands whose exit status is | ||||
| explicitly tested by a shell construct such as | ||||
| .Ic if , | ||||
| .Ic until , | ||||
| .Ic while , | ||||
| .Ic while | ||||
| or | ||||
| .Ic \&! | ||||
| statements. | ||||
| @@ -4208,7 +4207,7 @@ and optionally | ||||
| .Fn nl_langinfo CODESET , | ||||
| or the | ||||
| .Ev LC_ALL , | ||||
| .Ev LC_CTYPE , | ||||
| .Ev LC_CTYPE | ||||
| or | ||||
| .Ev LANG | ||||
| environment variables, | ||||
| @@ -4232,7 +4231,7 @@ or | ||||
| .Dq Li $* , | ||||
| is treated as an error, unless one of the | ||||
| .Ql \- , | ||||
| .Ql + , | ||||
| .Ql + | ||||
| or | ||||
| .Ql = | ||||
| modifiers is used. | ||||
| @@ -4645,7 +4644,7 @@ which fails if parameter | ||||
| .Dq foo | ||||
| is empty or unset, if it has embedded spaces (i.e.\& | ||||
| .Ev IFS | ||||
| octets), or if it is a unary operator like | ||||
| octets) or if it is a unary operator like | ||||
| .Dq Li \&! | ||||
| or | ||||
| .Dq Li \-n . | ||||
| @@ -4737,7 +4736,7 @@ is either an empty string, indicating the signals are to be ignored, a dash | ||||
| indicating that the default action is to be taken for the signals | ||||
| .Pq see Xr signal 3 , | ||||
| or a string containing shell commands to be executed at the first opportunity | ||||
| (i.e. when the current command completes, or before printing the next | ||||
| (i.e. when the current command completes or before printing the next | ||||
| .Ev PS1 | ||||
| prompt) after receipt of one of the signals. | ||||
| .Ar signal | ||||
| @@ -4988,7 +4987,7 @@ If any of the | ||||
| .Fl l , | ||||
| .Fl R , | ||||
| .Fl U , | ||||
| .Fl u , | ||||
| .Fl u | ||||
| or | ||||
| .Fl Z | ||||
| options are changed, all others from this set are cleared, | ||||
| @@ -5118,7 +5117,7 @@ is concerned, a block is 512 bytes. | ||||
| .Op Fl S | ||||
| .Op Ar mask | ||||
| .Xc | ||||
| Display or set the file permission creation mask, or umask (see | ||||
| Display or set the file permission creation mask or umask (see | ||||
| .Xr umask 2 ) . | ||||
| If the | ||||
| .Fl S | ||||
| @@ -5131,7 +5130,7 @@ When used, they describe what permissions may be made available (as opposed to | ||||
| octal masks in which a set bit means the corresponding bit is to be cleared). | ||||
| For example, | ||||
| .Dq Li ug=rwx,o= | ||||
| sets the mask so files will not be readable, writable, or executable by | ||||
| sets the mask so files will not be readable, writable or executable by | ||||
| .Dq others , | ||||
| and is equivalent (on most systems) to the octal mask | ||||
| .Dq Li 007 . | ||||
| @@ -5178,7 +5177,7 @@ The exit status of | ||||
| is that of the last specified job; if the last job is killed by a signal, the | ||||
| exit status is 128 + the number of the signal (see | ||||
| .Ic kill Fl l Ar exit-status | ||||
| above); if the last specified job can't be found (because it never existed, or | ||||
| above); if the last specified job can't be found (because it never existed or | ||||
| had already finished), the exit status of | ||||
| .Ic wait | ||||
| is 127. | ||||
| @@ -5187,9 +5186,9 @@ See | ||||
| below for the format of | ||||
| .Ar job . | ||||
| .Ic wait | ||||
| will return if a signal for which a trap has been set is received, or if a | ||||
| will return if a signal for which a trap has been set is received or if a | ||||
| .Dv SIGHUP , | ||||
| .Dv SIGINT , | ||||
| .Dv SIGINT | ||||
| or | ||||
| .Dv SIGQUIT | ||||
| signal is received. | ||||
| @@ -5245,7 +5244,7 @@ commands, and the state of the terminal is saved or restored when a foreground | ||||
| job is stopped or restarted, respectively. | ||||
| .Pp | ||||
| Note that only commands that create processes (e.g. asynchronous commands, | ||||
| subshell commands, and non-built-in, non-function commands) can be stopped; | ||||
| subshell commands and non-built-in, non-function commands) can be stopped; | ||||
| commands like | ||||
| .Ic read | ||||
| cannot be. | ||||
| @@ -5259,7 +5258,7 @@ A job may be referred to in the | ||||
| .Ic bg , | ||||
| .Ic fg , | ||||
| .Ic jobs , | ||||
| .Ic kill , | ||||
| .Ic kill | ||||
| and | ||||
| .Ic wait | ||||
| commands either by the process ID of the last process in the command pipeline | ||||
| @@ -5270,7 +5269,7 @@ parameter) or by prefixing the job number with a percent sign | ||||
| Other percent sequences can also be used to refer to jobs: | ||||
| .Bl -tag -width "%+ x %% x %XX" | ||||
| .It %+ \*(Ba %% \*(Ba % | ||||
| The most recently stopped job, or, if there are no stopped jobs, the oldest | ||||
| The most recently stopped job or, if there are no stopped jobs, the oldest | ||||
| running job. | ||||
| .It %\- | ||||
| The job that would be the | ||||
| @@ -5376,7 +5375,7 @@ refer to the | ||||
| manual page for details. | ||||
| Most other historic, | ||||
| .At | ||||
| .Nm ksh Ns -compatible , | ||||
| .Nm ksh Ns -compatible | ||||
| or opinionated differences can be disabled by using this mode; these are: | ||||
| .Bl -bullet | ||||
| .It | ||||
| @@ -5452,7 +5451,7 @@ The shell supports three modes of reading command lines from a | ||||
| .Xr tty 4 | ||||
| in an interactive session, controlled by the | ||||
| .Ic emacs , | ||||
| .Ic gmacs , | ||||
| .Ic gmacs | ||||
| and | ||||
| .Ic vi | ||||
| options (at most one of these can be set at once). | ||||
| @@ -5480,7 +5479,7 @@ In these editing modes, if a line is longer than the screen width (see the | ||||
| parameter), | ||||
| a | ||||
| .Ql \*(Gt , | ||||
| .Ql + , | ||||
| .Ql + | ||||
| or | ||||
| .Ql \*(Lt | ||||
| character is displayed in the last column indicating that there are more | ||||
| @@ -5489,7 +5488,7 @@ respectively. | ||||
| The line is scrolled horizontally as necessary. | ||||
| .Pp | ||||
| Completed lines are pushed into the history, unless they begin with an | ||||
| IFS octet or IFS white space, or are the same as the previous line. | ||||
| IFS octet or IFS white space or are the same as the previous line. | ||||
| .Ss Emacs editing mode | ||||
| When the | ||||
| .Ic emacs | ||||
| @@ -5559,7 +5558,7 @@ characters. | ||||
| .Xc | ||||
| Moves the cursor backward to the beginning of the word; words consist of | ||||
| alphanumerics, underscore | ||||
| .Pq Ql _ , | ||||
| .Pq Ql _ | ||||
| and dollar sign | ||||
| .Pq Ql $ | ||||
| characters. | ||||
| @@ -5605,7 +5604,7 @@ partial word up to the cursor as its prefix, as in the | ||||
| .Ic complete | ||||
| command described above. | ||||
| .It complete\-list: \*(haI, \*(ha[= | ||||
| Complete as much as is possible of the current word, | ||||
| Complete as much as is possible of the current word | ||||
| and list the possible completions for it. | ||||
| If only one completion is possible, | ||||
| match as in the | ||||
| @@ -5780,7 +5779,7 @@ Introduces a multi-character command sequence. | ||||
| .Op Ar n | ||||
| .No \*(ha[. , \*(ha[_ | ||||
| .Xc | ||||
| The last word, or, if given, the | ||||
| The last word or, if given, the | ||||
| .Ar n Ns th | ||||
| word (zero-based) of the previous (on repeated execution, second-last, | ||||
| third-last, etc.) command is inserted at the cursor. | ||||
| @@ -5846,7 +5845,7 @@ or | ||||
| .It set\-mark\-command: \*(ha[ Ns Aq space | ||||
| Set the mark at the cursor position. | ||||
| .It transpose\-chars: \*(haT | ||||
| If at the end of line, or if the | ||||
| If at the end of line or, if the | ||||
| .Ic gmacs | ||||
| option is set, this exchanges the two previous characters; otherwise, it | ||||
| exchanges the previous and current characters and moves the cursor one | ||||
| @@ -5897,7 +5896,7 @@ editor with the following exceptions: | ||||
| You start out in insert mode. | ||||
| .It | ||||
| There are file name and command completion commands: | ||||
| =, \e, *, \*(haX, \*(haE, \*(haF, and, optionally, | ||||
| =, \e, *, \*(haX, \*(haE, \*(haF and, optionally, | ||||
| .Aq tab | ||||
| and | ||||
| .Aq esc . | ||||
| @@ -5942,7 +5941,7 @@ settings | ||||
| (see | ||||
| .Xr stty 1 ) | ||||
| and have their usual meaning (normal values are in parentheses): kill (\*(haU), | ||||
| erase (\*(ha?), werase (\*(haW), eof (\*(haD), intr (\*(haC), and quit (\*(ha\e). | ||||
| erase (\*(ha?), werase (\*(haW), eof (\*(haD), intr (\*(haC) and quit (\*(ha\e). | ||||
| In addition to | ||||
| the above, the following characters are also treated specially in insert mode: | ||||
| .Bl -tag -width XJXXXXM | ||||
| @@ -5957,7 +5956,7 @@ is undone. | ||||
| Erases previous character. | ||||
| .It \*(haJ \*(Ba \*(haM | ||||
| End of line. | ||||
| The current line is read, parsed, and executed by the shell. | ||||
| The current line is read, parsed and executed by the shell. | ||||
| .It \*(haV | ||||
| Literal next. | ||||
| The next character typed is not treated specially (can be used | ||||
| @@ -5990,8 +5989,8 @@ refers to the position between the cursor and the character preceding the | ||||
| cursor. | ||||
| A | ||||
| .Dq word | ||||
| is a sequence of letters, digits, and underscore characters or a sequence of | ||||
| non-letter, non-digit, non-underscore, and non-whitespace characters (e.g.\& | ||||
| is a sequence of letters, digits and underscore characters or a sequence of | ||||
| non-letter, non-digit, non-underscore and non-whitespace characters (e.g.\& | ||||
| .Dq Li ab2*&\*(ha | ||||
| contains two words) and a | ||||
| .Dq big-word | ||||
| @@ -6050,13 +6049,13 @@ or follows one of the characters | ||||
| .Ql \&; , | ||||
| .Ql \*(Ba , | ||||
| .Ql & , | ||||
| .Ql \&( , | ||||
| .Ql \&( | ||||
| or | ||||
| .Ql \&) , | ||||
| .Ql \&) | ||||
| and does not contain a slash | ||||
| .Pq Ql / , | ||||
| then command expansion is done; otherwise file name expansion is done. | ||||
| Command expansion will match the big-word against all aliases, functions, and | ||||
| Command expansion will match the big-word against all aliases, functions and | ||||
| built-in commands as well as any executable files found by searching the | ||||
| directories in the | ||||
| .Ev PATH | ||||
| @@ -6169,8 +6168,8 @@ Move forward | ||||
| big-words. | ||||
| .It % | ||||
| Find match. | ||||
| The editor looks forward for the nearest parenthesis, bracket, or | ||||
| brace and then moves the cursor to the matching parenthesis, bracket, or brace. | ||||
| The editor looks forward for the nearest parenthesis, bracket or | ||||
| brace and then moves the cursor to the matching parenthesis, bracket or brace. | ||||
| .It Xo | ||||
| .Oo Ar n Oc Ns f Ns Ar c | ||||
| .Xc | ||||
| @@ -6203,7 +6202,7 @@ occurrence of the character | ||||
| .Oo Ar n Oc Ns \&; | ||||
| .Xc | ||||
| Repeats the last | ||||
| .Ic f , F , t , | ||||
| .Ic f , F , t | ||||
| or | ||||
| .Ic T | ||||
| command. | ||||
| @@ -6211,7 +6210,7 @@ command. | ||||
| .Oo Ar n Oc Ns \&, | ||||
| .Xc | ||||
| Repeats the last | ||||
| .Ic f , F , t , | ||||
| .Ic f , F , t | ||||
| or | ||||
| .Ic T | ||||
| command, but moves in the opposite direction. | ||||
| @@ -6424,7 +6423,7 @@ except the buffer is pasted at the current position. | ||||
| Miscellaneous vi commands | ||||
| .Bl -tag -width Ds | ||||
| .It \*(haJ and \*(haM | ||||
| The current line is read, parsed, and executed by the shell. | ||||
| The current line is read, parsed and executed by the shell. | ||||
| .It \*(haL and \*(haR | ||||
| Redraw the current line. | ||||
| .It Xo | ||||
| @@ -6437,7 +6436,7 @@ times. | ||||
| Undo the last edit command. | ||||
| .It U | ||||
| Undo all changes that have been made to the current line. | ||||
| .It PC Home, End, Del, and cursor keys | ||||
| .It PC Home, End, Del and cursor keys | ||||
| They move as expected, both in insert and command mode. | ||||
| .It Ar intr No and Ar quit | ||||
| The interrupt and quit terminal characters cause the current line to be | ||||
| @@ -6578,7 +6577,7 @@ and parts of the BRL shell by | ||||
| .An Doug Kingston , | ||||
| .An Ron Natalie , | ||||
| .An Arnold Robbins , | ||||
| .An Lou Salkind , | ||||
| .An Lou Salkind | ||||
| and others. | ||||
| The first release of | ||||
| .Nm pdksh | ||||
| @@ -6586,12 +6585,12 @@ was created by | ||||
| .An Eric Gisin , | ||||
| and it was subsequently maintained by | ||||
| .An John R. MacMillan , | ||||
| .An Simon J. Gerraty , | ||||
| .An Simon J. Gerraty | ||||
| and | ||||
| .An Michael Rendell . | ||||
| The effort of several projects, such as Debian and OpenBSD, and other | ||||
| contributors including our users, to improve the shell is appreciated. | ||||
| See the documentation, CVS, and web site for details. | ||||
| See the documentation, web site and CVS for details. | ||||
| .Pp | ||||
| The BSD daemon is Copyright \(co Marshall Kirk McKusick. | ||||
| The complete legalese is at: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user