diff options
Diffstat (limited to 'upstream/mageia-cauldron/man1p/sh.1p')
-rw-r--r-- | upstream/mageia-cauldron/man1p/sh.1p | 1704 |
1 files changed, 1704 insertions, 0 deletions
diff --git a/upstream/mageia-cauldron/man1p/sh.1p b/upstream/mageia-cauldron/man1p/sh.1p new file mode 100644 index 00000000..dd1821d7 --- /dev/null +++ b/upstream/mageia-cauldron/man1p/sh.1p @@ -0,0 +1,1704 @@ +'\" et +.TH SH "1P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" +.SH PROLOG +This manual page is part of the POSIX Programmer's Manual. +The Linux implementation of this interface may differ (consult +the corresponding Linux manual page for details of Linux behavior), +or the interface may not be implemented on Linux. +.\" +.SH NAME +sh +\(em shell, the standard command language interpreter +.SH SYNOPSIS +.LP +.nf +sh \fB[\fR-abCefhimnuvx\fB] [\fR-o \fIoption\fB]\fR... \fB[\fR+abCefhimnuvx\fB] [\fR+o \fIoption\fB]\fR... + \fB[\fIcommand_file \fB[\fIargument\fR...\fB]]\fR +.P +sh -c \fB[\fR-abCefhimnuvx\fB] [\fR-o \fIoption\fB]\fR... \fB[\fR+abCefhimnuvx\fB] [\fR+o \fIoption\fB]\fR... + \fIcommand_string \fB[\fIcommand_name \fB[\fIargument\fR...\fB]]\fR +.P +sh -s \fB[\fR-abCefhimnuvx\fB] [\fR-o \fIoption\fB]\fR... \fB[\fR+abCefhimnuvx\fB] [\fR+o \fIoption\fB]\fR... + \fB[\fIargument\fR...\fB]\fR +.fi +.SH DESCRIPTION +The +.IR sh +utility is a command language interpreter that shall execute commands +read from a command line string, the standard input, or a specified +file. The application shall ensure that the commands to be executed are +expressed in the language described in +.IR "Chapter 2" ", " "Shell Command Language". +.P +Pathname expansion shall not fail due to the size of a file. +.P +Shell input and output redirections have an implementation-defined +offset maximum that is established in the open file description. +.SH OPTIONS +The +.IR sh +utility shall conform to the Base Definitions volume of POSIX.1\(hy2017, +.IR "Section 12.2" ", " "Utility Syntax Guidelines", +with an extension for support of a leading +<plus-sign> +(\c +.BR '\(pl' ) +as noted below. +.P +The +.BR \-a , +.BR \-b , +.BR \-C , +.BR \-e , +.BR \-f , +.BR \-m , +.BR \-n , +.BR \-o +.IR option , +.BR \-u , +.BR \-v , +and +.BR \-x +options are described as part of the +.IR set +utility in +.IR "Section 2.14" ", " "Special Built-In Utilities". +The option letters derived from the +.IR set +special built-in shall also be accepted with a leading +<plus-sign> +(\c +.BR '\(pl' ) +instead of a leading +<hyphen-minus> +(meaning the reverse case of the option as described in this volume of POSIX.1\(hy2017). +.P +The following additional options shall be supported: +.IP "\fB\-c\fP" 10 +Read commands from the +.IR command_string +operand. Set the value of special parameter 0 (see +.IR "Section 2.5.2" ", " "Special Parameters") +from the value of the +.IR command_name +operand and the positional parameters ($1, $2, and so on) in sequence +from the remaining +.IR argument +operands. No commands shall be read from the standard input. +.IP "\fB\-i\fP" 10 +Specify that the shell is +.IR interactive ; +see below. An implementation may treat specifying the +.BR \-i +option as an error if the real user ID of the calling process does not +equal the effective user ID or if the real group ID does not equal the +effective group ID. +.IP "\fB\-s\fP" 10 +Read commands from the standard input. +.P +If there are no operands and the +.BR \-c +option is not specified, the +.BR \-s +option shall be assumed. +.P +If the +.BR \-i +option is present, or if there are no operands and the shell's standard +input and standard error are attached to a terminal, the shell is +considered to be +.IR interactive . +.SH OPERANDS +The following operands shall be supported: +.IP "\fR\-\fR" 10 +A single +<hyphen-minus> +shall be treated as the first operand and then ignored. If both +.BR '\-' +and +.BR \(dq--\(dq +are given as arguments, or if other operands precede the single +<hyphen-minus>, +the results are undefined. +.IP "\fIargument\fR" 10 +The positional parameters ($1, $2, and so on) shall be set to +.IR arguments , +if any. +.IP "\fIcommand_file\fR" 10 +The pathname of a file containing commands. If the pathname contains +one or more +<slash> +characters, the implementation attempts to read that file; the file need +not be executable. If the pathname does not contain a +<slash> +character: +.RS 10 +.IP " *" 4 +The implementation shall attempt to read that file from the current +working directory; the file need not be executable. +.IP " *" 4 +If the file is not in the current working directory, the implementation +may perform a search for an executable file using the value of +.IR PATH , +as described in +.IR "Section 2.9.1.1" ", " "Command Search and Execution". +.P +Special parameter 0 (see +.IR "Section 2.5.2" ", " "Special Parameters") +shall be set to the value of +.IR command_file . +If +.IR sh +is called using a synopsis form that omits +.IR command_file , +special parameter 0 shall be set to the value of the first argument +passed to +.IR sh +from its parent (for example, +.IR argv [0] +for a C program), which is normally a pathname used to execute the +.IR sh +utility. +.RE +.IP "\fIcommand_name\fR" 10 +.br +A string assigned to special parameter 0 when executing the commands in +.IR command_string . +If +.IR command_name +is not specified, special parameter 0 shall be set to the value of the +first argument passed to +.IR sh +from its parent (for example, +.IR argv [0] +for a C program), which is normally a pathname used to execute the +.IR sh +utility. +.IP "\fIcommand_string\fR" 10 +.br +A string that shall be interpreted by the shell as one or more +commands, as if the string were the argument to the +\fIsystem\fR() +function defined in the System Interfaces volume of POSIX.1\(hy2017. If the +.IR command_string +operand is an empty string, +.IR sh +shall exit with a zero exit status. +.SH STDIN +The standard input shall be used only if one of the following is true: +.IP " *" 4 +The +.BR \-s +option is specified. +.IP " *" 4 +The +.BR \-c +option is not specified and no operands are specified. +.IP " *" 4 +The script executes one or more commands that require input from +standard input (such as a +.IR read +command that does not redirect its input). +.P +See the INPUT FILES section. +.P +When the shell is using standard input and it invokes a command that +also uses standard input, the shell shall ensure that the standard +input file pointer points directly after the command it has read when +the command begins execution. It shall not read ahead in such a manner +that any characters intended to be read by the invoked command are +consumed by the shell (whether interpreted by the shell or not) or that +characters that are not read by the invoked command are not seen by the +shell. When the command expecting to read standard input is started +asynchronously by an interactive shell, it is unspecified whether +characters are read by the command or interpreted by the shell. +.P +If the standard input to +.IR sh +is a FIFO or terminal device and is set to non-blocking reads, then +.IR sh +shall enable blocking reads on standard input. This shall remain in +effect when the command completes. +.SH "INPUT FILES" +The input file shall be a text file, except that line lengths shall be +unlimited. If the input file consists solely of zero or more blank lines +and comments, +.IR sh +shall exit with a zero exit status. +.SH "ENVIRONMENT VARIABLES" +The following environment variables shall affect the execution of +.IR sh : +.IP "\fIENV\fP" 10 +This variable, when and only when an interactive shell is invoked, +shall be subjected to parameter expansion (see +.IR "Section 2.6.2" ", " "Parameter Expansion") +by the shell, and the resulting value shall be used as a pathname of a +file containing shell commands to execute in the current environment. +The file need not be executable. If the expanded value of +.IR ENV +is not an absolute pathname, the results are unspecified. +.IR ENV +shall be ignored if the real and effective user IDs or real and +effective group IDs of the process are different. +.IP "\fIFCEDIT\fP" 10 +This variable, when expanded by the shell, shall determine the default +value for the +.BR \-e +.IR editor +option's +.IR editor +option-argument. If +.IR FCEDIT +is null or unset, +.IR ed +shall be used as the editor. +.IP "\fIHISTFILE\fP" 10 +Determine a pathname naming a command history file. If the +.IR HISTFILE +variable is not set, the shell may attempt to access or create a file +.BR .sh_history +in the directory referred to by the +.IR HOME +environment variable. If the shell cannot obtain both read and +write access to, or create, the history file, it shall use an +unspecified mechanism that allows the history to operate properly. +(References to history ``file'' in this section shall be understood to +mean this unspecified mechanism in such cases.) An implementation may +choose to access this variable only when initializing the history file; +this initialization shall occur when +.IR fc +or +.IR sh +first attempt to retrieve entries from, or add entries to, the file, as +the result of commands issued by the user, the file named by the +.IR ENV +variable, or implementation-defined system start-up files. +Implementations may choose to disable the history list mechanism for +users with appropriate privileges who do not set +.IR HISTFILE ; +the specific circumstances under which this occurs are +implementation-defined. If more than one instance of the shell is +using the same history file, it is unspecified how updates to the +history file from those shells interact. As entries are deleted from +the history file, they shall be deleted oldest first. It is +unspecified when history file entries are physically removed from the +history file. +.IP "\fIHISTSIZE\fP" 10 +Determine a decimal number representing the limit to the number of +previous commands that are accessible. If this variable is unset, an +unspecified default greater than or equal to 128 shall be used. The +maximum number of commands in the history list is unspecified, but +shall be at least 128. An implementation may choose to access this +variable only when initializing the history file, as described under +.IR HISTFILE . +Therefore, it is unspecified whether changes made to +.IR HISTSIZE +after the history file has been initialized are effective. +.IP "\fIHOME\fP" 10 +Determine the pathname of the user's home directory. The contents of +.IR HOME +are used in tilde expansion as described in +.IR "Section 2.6.1" ", " "Tilde Expansion". +.IP "\fILANG\fP" 10 +Provide a default value for the internationalization variables that are +unset or null. (See the Base Definitions volume of POSIX.1\(hy2017, +.IR "Section 8.2" ", " "Internationalization Variables" +for the precedence of internationalization variables used to determine +the values of locale categories.) +.IP "\fILC_ALL\fP" 10 +If set to a non-empty string value, override the values of all the +other internationalization variables. +.IP "\fILC_COLLATE\fP" 10 +.br +Determine the behavior of range expressions, equivalence classes, and +multi-character collating elements within pattern matching. +.IP "\fILC_CTYPE\fP" 10 +Determine the locale for the interpretation of sequences of bytes of +text data as characters (for example, single-byte as opposed to +multi-byte characters in arguments and input files), which characters +are defined as letters (character class +.BR alpha ), +and the behavior of character classes within pattern matching. +.IP "\fILC_MESSAGES\fP" 10 +.br +Determine the locale that should be used to affect the format and +contents of diagnostic messages written to standard error. +.IP "\fIMAIL\fP" 10 +Determine a pathname of the user's mailbox file for purposes of +incoming mail notification. If this variable is set, the shell shall +inform the user if the file named by the variable is created or if its +modification time has changed. Informing the user shall be accomplished +by writing a string of unspecified format to standard error prior to +the writing of the next primary prompt string. Such check shall be +performed only after the completion of the interval defined by the +.IR MAILCHECK +variable after the last such check. The user shall be informed only if +.IR MAIL +is set and +.IR MAILPATH +is not set. +.IP "\fIMAILCHECK\fP" 10 +.br +Establish a decimal integer value that specifies how often (in seconds) +the shell shall check for the arrival of mail in the files specified by +the +.IR MAILPATH +or +.IR MAIL +variables. The default value shall be 600 seconds. If set to zero, +the shell shall check before issuing each primary prompt. +.IP "\fIMAILPATH\fP" 10 +Provide a list of pathnames and optional messages separated by +<colon> +characters. If this variable is set, the shell shall inform the user if +any of the files named by the variable are created or if any of their +modification times change. (See the preceding entry for +.IR MAIL +for descriptions of mail arrival and user informing.) Each pathname can +be followed by +.BR '%' +and a string that shall be subjected to parameter expansion and written +to standard error when the modification time changes. If a +.BR '%' +character in the pathname is preceded by a +<backslash>, +it shall be treated as a literal +.BR '%' +in the pathname. The default message is unspecified. +.RS 10 +.P +The +.IR MAILPATH +environment variable takes precedence over the +.IR MAIL +variable. +.RE +.IP "\fINLSPATH\fP" 10 +Determine the location of message catalogs for the processing of +.IR LC_MESSAGES . +.IP "\fIPATH\fP" 10 +Establish a string formatted as described in the Base Definitions volume of POSIX.1\(hy2017, +.IR "Chapter 8" ", " "Environment Variables", +used to effect command interpretation; see +.IR "Section 2.9.1.1" ", " "Command Search and Execution". +.IP "\fIPWD\fP" 10 +This variable shall represent an absolute pathname of the current +working directory. Assignments to this variable may be ignored. +.SH "ASYNCHRONOUS EVENTS" +The +.IR sh +utility shall take the standard action for all signals (see +.IR "Section 1.4" ", " "Utility Description Defaults") +with the following exceptions. +.P +If the shell is interactive, SIGINT signals received during command +line editing shall be handled as described in the EXTENDED DESCRIPTION, +and SIGINT signals received at other times shall be caught but no action +performed. +.br +.P +If the shell is interactive: +.IP " *" 4 +SIGQUIT and SIGTERM signals shall be ignored. +.IP " *" 4 +If the +.BR \-m +option is in effect, SIGTTIN, SIGTTOU, and SIGTSTP signals shall be +ignored. +.IP " *" 4 +If the +.BR \-m +option is not in effect, it is unspecified whether SIGTTIN, SIGTTOU, +and SIGTSTP signals are ignored, set to the default action, or caught. +If they are caught, the shell shall, in the signal-catching function, +set the signal to the default action and raise the signal (after taking +any appropriate steps, such as restoring terminal settings). +.P +The standard actions, and the actions described above for interactive +shells, can be overridden by use of the +.IR trap +special built-in utility (see +.IR "\fItrap\fR\^" +and +.IR "Section 2.11" ", " "Signals and Error Handling"). +.SH STDOUT +See the STDERR section. +.SH STDERR +Except as otherwise stated (by the descriptions of any invoked +utilities or in interactive mode), standard error shall be used +only for diagnostic messages. +.SH "OUTPUT FILES" +None. +.SH "EXTENDED DESCRIPTION" +See +.IR "Chapter 2" ", " "Shell Command Language". +The functionality described in the rest of the EXTENDED DESCRIPTION +section shall be provided on implementations that support the User +Portability Utilities option +(and the rest of this section is not further shaded for this option). +.SS "Command History List" +.P +When the +.IR sh +utility is being used interactively, it shall maintain a list of +commands previously entered from the terminal in the file named by the +.IR HISTFILE +environment variable. The type, size, and internal format of this file +are unspecified. Multiple +.IR sh +processes can share access to the file for a user, if file access +permissions allow this; see the description of the +.IR HISTFILE +environment variable. +.SS "Command Line Editing" +.P +When +.IR sh +is being used interactively from a terminal, the current command and +the command history (see +.IR "\fIfc\fR\^") +can be edited using +.IR vi -mode +command line editing. This mode uses commands, described below, +similar to a subset of those described in the +.IR vi +utility. Implementations may offer other command line editing modes +corresponding to other editing utilities. +.P +The command +.IR set +.BR \-o +.IR vi +shall enable +.IR vi -mode +editing and place +.IR sh +into +.IR vi +insert mode (see +.IR "Command Line Editing (vi-mode)"). +This command also shall disable any other editing mode that the +implementation may provide. The command +.IR set +.BR +o +.IR vi +disables +.IR vi -mode +editing. +.P +Certain block-mode terminals may be unable to support shell command +line editing. If a terminal is unable to provide either edit mode, it +need not be possible to +.IR set +.BR \-o +.IR vi +when using the shell on this terminal. +.P +In the following sections, the characters +.IR erase , +.IR interrupt , +.IR kill , +and +.IR end-of-file +are those set by the +.IR stty +utility. +.SS "Command Line Editing (vi-mode)" +.P +In +.IR vi +editing mode, there shall be a distinguished line, the edit line. All +the editing operations which modify a line affect the edit line. The +edit line is always the newest line in the command history buffer. +.P +With +.IR vi -mode +enabled, +.IR sh +can be switched between insert mode and command mode. +.P +When in insert mode, an entered character shall be inserted into the +command line, except as noted in +.IR "vi Line Editing Insert Mode". +Upon entering +.IR sh +and after termination of the previous command, +.IR sh +shall be in insert mode. +.P +Typing an escape character shall switch +.IR sh +into command mode (see +.IR "vi Line Editing Command Mode"). +In command mode, an entered character shall either invoke a defined +operation, be used as part of a multi-character operation, or be +treated as an error. A character that is not recognized as part of an +editing command shall terminate any specific editing command and shall +alert the terminal. If +.IR sh +receives a SIGINT signal in command mode (whether generated by typing the +.IR interrupt +character or by other means), it shall terminate command line editing +on the current command line, reissue the prompt on the next line of the +terminal, and reset the command history (see +.IR "\fIfc\fR\^") +so that the most recently executed command is the previous command +(that is, the command that was being edited when it was interrupted is +not re-entered into the history). +.P +In the following sections, the phrase ``move the cursor to the +beginning of the word'' shall mean ``move the cursor to the first +character of the current word'' and the phrase ``move the cursor to the +end of the word'' shall mean ``move the cursor to the last character of +the current word''. The phrase ``beginning of the command line'' +indicates the point between the end of the prompt string issued by the +shell (or the beginning of the terminal line, if there is no prompt +string) and the first character of the command text. +.SS "vi Line Editing Insert Mode" +.P +While in insert mode, any character typed shall be inserted in the +current command line, unless it is from the following set. +.IP <newline> 10 +Execute the current command line. If the current command line is not +empty, this line shall be entered into the command history (see +.IR "\fIfc\fR\^"). +.IP "\fIerase\fR" 10 +Delete the character previous to the current cursor position and move +the current cursor position back one character. In insert mode, +characters shall be erased from both the screen and the buffer when +backspacing. +.IP "\fIinterrupt\fR" 10 +If +.IR sh +receives a SIGINT signal in insert mode (whether generated by typing +the +.IR interrupt +character or by other means), it shall terminate command line editing +with the same effects as described for interrupting command mode; see +.IR "Command Line Editing (vi-mode)". +.IP "\fIkill\fR" 10 +Clear all the characters from the input line. +.IP "<control>\(hyV" 10 +Insert the next character input, even if the character is otherwise a +special insert mode character. +.IP "<control>\(hyW" 10 +Delete the characters from the one preceding the cursor to the +preceding word boundary. The word boundary in this case is the closer +to the cursor of either the beginning of the line or a character that +is in neither the +.BR blank +nor +.BR punct +character classification of the current locale. +.IP "\fIend-of-file\fR" 10 +Interpreted as the end of input in +.IR sh . +This interpretation shall occur only at the beginning of an input +line. If +.IR end-of-file +is entered other than at the beginning of the line, the results are +unspecified. +.IP <ESC> 10 +Place +.IR sh +into command mode. +.SS "vi Line Editing Command Mode" +.P +In command mode for the command line editing feature, decimal digits +not beginning with 0 that precede a command letter shall be +remembered. Some commands use these decimal digits as a count number +that affects the operation. +.P +The term +.IR "motion command" +represents one of the commands: +.sp +.RS 4 +.nf + +<space> 0 b F l W \(ha $ ; E f T w | , B e h t +.fi +.P +.RE +.P +If the current line is not the edit line, any command that modifies the +current line shall cause the content of the current line to replace the +content of the edit line, and the current line shall become the edit +line. This replacement cannot be undone (see the +.BR u +and +.BR U +commands below). The modification requested shall then be performed to +the edit line. When the current line is the edit line, the modification +shall be done directly to the edit line. +.P +Any command that is preceded by +.IR count +shall take a count (the numeric value of any preceding decimal +digits). Unless otherwise noted, this count shall cause the specified +operation to repeat by the number of times specified by the count. +Also unless otherwise noted, a +.IR count +that is out of range is considered an error condition and shall alert +the terminal, but neither the cursor position, nor the command line, +shall change. +.P +The terms +.IR word +and +.IR bigword +are used as defined in the +.IR vi +description. The term +.IR "save buffer" +corresponds to the term +.IR "unnamed buffer" +in +.IR vi . +.P +The following commands shall be recognized in command mode: +.IP <newline> 10 +Execute the current command line. If the current command line is not +empty, this line shall be entered into the command history (see +.IR "\fIfc\fR\^"). +.IP "<control>\(hyL" 10 +Redraw the current command line. Position the cursor at the same +location on the redrawn line. +.IP "\fB#\fP" 10 +Insert the character +.BR '#' +at the beginning of the current command line and treat the resulting +edit line as a comment. This line shall be entered into the command +history; see +.IR "\fIfc\fR\^". +.IP "\fB=\fP" 10 +Display the possible shell word expansions (see +.IR "Section 2.6" ", " "Word Expansions") +of the bigword at the current command line position. +.RS 10 +.TP 10 +.BR Note: +This does not modify the content of the current line, and therefore +does not cause the current line to become the edit line. +.P +.P +These expansions shall be displayed on subsequent terminal lines. If +the bigword contains none of the characters +.BR '?' , +.BR '*' , +or +.BR '[' , +an +<asterisk> +(\c +.BR '*' ) +shall be implicitly assumed at the end. If any directories are +matched, these expansions shall have a +.BR '/' +character appended. After the expansion, the line shall be redrawn, +the cursor repositioned at the current cursor position, and +.IR sh +shall be placed in command mode. +.RE +.IP "\fB\e\fR" 10 +Perform pathname expansion (see +.IR "Section 2.6.6" ", " "Pathname Expansion") +on the current bigword, up to the largest set of characters that can be +matched uniquely. If the bigword contains none of the characters +.BR '?' , +.BR '*' , +or +.BR '[' , +an +<asterisk> +(\c +.BR '*' ) +shall be implicitly assumed at the end. This maximal expansion then +shall replace the original bigword in the command line, and the cursor +shall be placed after this expansion. If the resulting bigword +completely and uniquely matches a directory, a +.BR '/' +character shall be inserted directly after the bigword. If some other +file is completely matched, a single +<space> +shall be inserted after the bigword. After this operation, +.IR sh +shall be placed in insert mode. +.IP "\fB*\fR" 10 +Perform pathname expansion on the current bigword and insert all +expansions into the command to replace the current bigword, with each +expansion separated by a single +<space>. +If at the end of the line, the current cursor position shall be moved +to the first column position following the expansions and +.IR sh +shall be placed in insert mode. Otherwise, the current cursor position +shall be the last column position of the first character after the +expansions and +.IR sh +shall be placed in insert mode. If the current bigword contains none +of the characters +.BR '?' , +.BR '*' , +or +.BR '[' , +before the operation, an +<asterisk> +(\c +.BR '*' ) +shall be implicitly assumed at the end. +.IP "\fB@\fIletter\fR" 10 +Insert the value of the alias named +.IR _letter . +The symbol +.IR letter +represents a single alphabetic character from the portable character +set; implementations may support additional characters as an +extension. If the alias +.IR _letter +contains other editing commands, these commands shall be performed as +part of the insertion. If no alias +.IR _letter +is enabled, this command shall have no effect. +.IP "\fB[\fIcount\fB]~\fR" 10 +Convert, if the current character is a lowercase letter, to the +equivalent uppercase letter and +.IR "vice versa" , +as prescribed by the current locale. The current cursor position then +shall be advanced by one character. If the cursor was positioned on +the last character of the line, the case conversion shall occur, but +the cursor shall not advance. If the +.BR '\(ti' +command is preceded by a +.IR count , +that number of characters shall be converted, and the cursor shall be +advanced to the character position after the last character converted. +If the +.IR count +is larger than the number of characters after the cursor, this shall +not be considered an error; the cursor shall advance to the last +character on the line. +.IP "\fB[\fIcount\fB].\fR" 10 +Repeat the most recent non-motion command, even if it was executed on +an earlier command line. If the previous command was preceded by a +.IR count , +and no count is given on the +.BR '.' +command, the count from the previous command shall be included as part +of the repeated command. If the +.BR '.' +command is preceded by a +.IR count , +this shall override any +.IR count +argument to the previous command. The +.IR count +specified in the +.BR '.' +command shall become the count for subsequent +.BR '.' +commands issued without a count. +.IP "\fB[\fInumber\fB]v\fR" 10 +Invoke the +.IR vi +editor to edit the current command line in a temporary file. When the +editor exits, the commands in the temporary file shall be executed and +placed in the command history. If a +.IR number +is included, it specifies the command number in the command history to +be edited, rather than the current command line. +.IP "\fB[\fIcount\fB]l\fR\0\0\0(ell)" 10 +.sp -0.5v +.IP "\fB[\fIcount\fB]\fR<space>" 10 +.br +Move the current cursor position to the next character position. If +the cursor was positioned on the last character of the line, the +terminal shall be alerted and the cursor shall not be advanced. If the +.IR count +is larger than the number of characters after the cursor, this shall +not be considered an error; the cursor shall advance to the last +character on the line. +.IP "\fB[\fIcount\fB]h\fR" 10 +Move the current cursor position to the +.IR count th +(default 1) previous character position. If the cursor was positioned +on the first character of the line, the terminal shall be alerted and +the cursor shall not be moved. If the count is larger than the number +of characters before the cursor, this shall not be considered an error; +the cursor shall move to the first character on the line. +.IP "\fB[\fIcount\fB]w\fR" 10 +Move to the start of the next word. If the cursor was positioned on +the last character of the line, the terminal shall be alerted and the +cursor shall not be advanced. If the +.IR count +is larger than the number of words after the cursor, this shall not be +considered an error; the cursor shall advance to the last character on +the line. +.IP "\fB[\fIcount\fB]W\fR" 10 +Move to the start of the next bigword. If the cursor was positioned on +the last character of the line, the terminal shall be alerted and the +cursor shall not be advanced. If the +.IR count +is larger than the number of bigwords after the cursor, this shall not +be considered an error; the cursor shall advance to the last character +on the line. +.IP "\fB[\fIcount\fB]e\fR" 10 +Move to the end of the current word. If at the end of a word, move to +the end of the next word. If the cursor was positioned on the last +character of the line, the terminal shall be alerted and the cursor +shall not be advanced. If the +.IR count +is larger than the number of words after the cursor, this shall not be +considered an error; the cursor shall advance to the last character on +the line. +.IP "\fB[\fIcount\fB]E\fR" 10 +Move to the end of the current bigword. If at the end of a bigword, +move to the end of the next bigword. If the cursor was positioned on +the last character of the line, the terminal shall be alerted and the +cursor shall not be advanced. If the +.IR count +is larger than the number of bigwords after the cursor, this shall not +be considered an error; the cursor shall advance to the last character +on the line. +.IP "\fB[\fIcount\fB]b\fR" 10 +Move to the beginning of the current word. If at the beginning of a +word, move to the beginning of the previous word. If the cursor was +positioned on the first character of the line, the terminal shall be +alerted and the cursor shall not be moved. If the +.IR count +is larger than the number of words preceding the cursor, this shall not +be considered an error; the cursor shall return to the first character +on the line. +.IP "\fB[\fIcount\fB]B\fR" 10 +Move to the beginning of the current bigword. If at the beginning of a +bigword, move to the beginning of the previous bigword. If the cursor +was positioned on the first character of the line, the terminal shall +be alerted and the cursor shall not be moved. If the +.IR count +is larger than the number of bigwords preceding the cursor, this shall +not be considered an error; the cursor shall return to the first +character on the line. +.IP "\fB^\fR" 10 +Move the current cursor position to the first character on the input +line that is not a +<blank>. +.IP "\fB$\fR" 10 +Move to the last character position on the current command line. +.IP "\fB0\fR" 10 +(Zero.) Move to the first character position on the current command +line. +.IP "\fB[\fIcount\fB]\||\fR" 10 +Move to the +.IR count th +character position on the current command line. If no number is +specified, move to the first position. The first character position +shall be numbered 1. If the count is larger than the number of +characters on the line, this shall not be considered an error; the +cursor shall be placed on the last character on the line. +.IP "\fB[\fIcount\fB]f\fIc\fR" 10 +Move to the first occurrence of the character +.BR 'c' +that occurs after the current cursor position. If the cursor was +positioned on the last character of the line, the terminal shall be +alerted and the cursor shall not be advanced. If the character +.BR 'c' +does not occur in the line after the current cursor position, the +terminal shall be alerted and the cursor shall not be moved. +.IP "\fB[\fIcount\fB]F\fIc\fR" 10 +Move to the first occurrence of the character +.BR 'c' +that occurs before the current cursor position. If the cursor was +positioned on the first character of the line, the terminal shall be +alerted and the cursor shall not be moved. If the character +.BR 'c' +does not occur in the line before the current cursor position, the +terminal shall be alerted and the cursor shall not be moved. +.IP "\fB[\fIcount\fB]t\fIc\fR" 10 +Move to the character before the first occurrence of the character +.BR 'c' +that occurs after the current cursor position. If the cursor was +positioned on the last character of the line, the terminal shall be +alerted and the cursor shall not be advanced. If the character +.BR 'c' +does not occur in the line after the current cursor position, the +terminal shall be alerted and the cursor shall not be moved. +.IP "\fB[\fIcount\fB]T\fIc\fR" 10 +Move to the character after the first occurrence of the character +.BR 'c' +that occurs before the current cursor position. If the cursor was +positioned on the first character of the line, the terminal shall be +alerted and the cursor shall not be moved. If the character +.BR 'c' +does not occur in the line before the current cursor position, the +terminal shall be alerted and the cursor shall not be moved. +.IP "\fB[\fIcount\fB];\fR" 10 +Repeat the most recent +.BR f , +.BR F , +.BR t , +or +.BR T +command. Any number argument on that previous command shall be +ignored. Errors are those described for the repeated command. +.IP "\fB[\fIcount\fB],\fR" 10 +Repeat the most recent +.BR f , +.BR F , +.BR t , +or +.BR T +command. Any number argument on that previous command shall be +ignored. However, reverse the direction of that command. +.IP "\fBa\fR" 10 +Enter insert mode after the current cursor position. Characters that +are entered shall be inserted before the next character. +.IP "\fBA\fR" 10 +Enter insert mode after the end of the current command line. +.IP "\fBi\fR" 10 +Enter insert mode at the current cursor position. Characters that are +entered shall be inserted before the current character. +.IP "\fBI\fR" 10 +Enter insert mode at the beginning of the current command line. +.IP "\fBR\fR" 10 +Enter insert mode, replacing characters from the command line beginning +at the current cursor position. +.IP "\fB[\fIcount\fB]c\fImotion\fR" 10 +.br +Delete the characters between the current cursor position and the +cursor position that would result from the specified motion +command. Then enter insert mode before the first character following +any deleted characters. If +.IR count +is specified, it shall be applied to the motion command. A +.IR count +shall be ignored for the following motion commands: +.RS 10 +.sp +.RS 4 +.nf + +0 \(ha $ c +.fi +.P +.RE +.P +If the motion command is the character +.BR 'c' , +the current command line shall be cleared and insert mode shall be +entered. If the motion command would move the current cursor position +toward the beginning of the command line, the character under the +current cursor position shall not be deleted. If the motion command +would move the current cursor position toward the end of the command +line, the character under the current cursor position shall be deleted. +If the +.IR count +is larger than the number of characters between the current cursor +position and the end of the command line toward which the motion +command would move the cursor, this shall not be considered an error; +all of the remaining characters in the aforementioned range shall be +deleted and insert mode shall be entered. If the motion command is +invalid, the terminal shall be alerted, the cursor shall not be moved, +and no text shall be deleted. +.RE +.IP "\fBC\fR" 10 +Delete from the current character to the end of the line and enter +insert mode at the new end-of-line. +.IP "\fBS\fR" 10 +Clear the entire edit line and enter insert mode. +.IP "\fB[\fIcount\fB]r\fIc\fR" 10 +Replace the current character with the character +.BR 'c' . +With a number +.IR count , +replace the current and the following +.IR count \-1 +characters. After this command, the current cursor position shall be +on the last character that was changed. If the +.IR count +is larger than the number of characters after the cursor, this shall +not be considered an error; all of the remaining characters shall be +changed. +.IP "\fB[\fIcount\fB]_\fR" 10 +Append a +<space> +after the current character position and then append the last bigword +in the previous input line after the +<space>. +Then enter insert mode after the last character just appended. With a +number +.IR count , +append the +.IR count th +bigword in the previous line. +.IP "\fB[\fIcount\fB]x\fR" 10 +Delete the character at the current cursor position and place the +deleted characters in the save buffer. If the cursor was positioned on +the last character of the line, the character shall be deleted and the +cursor position shall be moved to the previous character (the new last +character). If the +.IR count +is larger than the number of characters after the cursor, this shall +not be considered an error; all the characters from the cursor to the +end of the line shall be deleted. +.IP "\fB[\fIcount\fB]X\fR" 10 +Delete the character before the current cursor position and place the +deleted characters in the save buffer. The character under the current +cursor position shall not change. If the cursor was positioned on the +first character of the line, the terminal shall be alerted, and the +.BR X +command shall have no effect. If the line contained a single +character, the +.BR X +command shall have no effect. If the line contained no characters, the +terminal shall be alerted and the cursor shall not be moved. If the +.IR count +is larger than the number of characters before the cursor, this shall +not be considered an error; all the characters from before the cursor +to the beginning of the line shall be deleted. +.IP "\fB[\fIcount\fB]d\fImotion\fR" 10 +.br +Delete the characters between the current cursor position and the +character position that would result from the motion command. A number +.IR count +repeats the motion command +.IR count +times. If the motion command would move toward the beginning of the +command line, the character under the current cursor position shall not +be deleted. If the motion command is +.BR d , +the entire current command line shall be cleared. If the +.IR count +is larger than the number of characters between the current cursor +position and the end of the command line toward which the motion +command would move the cursor, this shall not be considered an error; +all of the remaining characters in the aforementioned range shall be +deleted. The deleted characters shall be placed in the save buffer. +.IP "\fBD\fR" 10 +Delete all characters from the current cursor position to the end of +the line. The deleted characters shall be placed in the save buffer. +.IP "\fB[\fIcount\fB]y\fImotion\fR" 10 +.br +Yank (that is, copy) the characters from the current cursor position to +the position resulting from the motion command into the save buffer. A +number +.IR count +shall be applied to the motion command. If the motion command would +move toward the beginning of the command line, the character under the +current cursor position shall not be included in the set of yanked +characters. If the motion command is +.BR y , +the entire current command line shall be yanked into the save buffer. +The current cursor position shall be unchanged. If the +.IR count +is larger than the number of characters between the current cursor +position and the end of the command line toward which the motion +command would move the cursor, this shall not be considered an error; +all of the remaining characters in the aforementioned range shall be +yanked. +.IP "\fBY\fR" 10 +Yank the characters from the current cursor position to the end of the +line into the save buffer. The current character position shall be +unchanged. +.IP "\fB[\fIcount\fB]p\fR" 10 +Put a copy of the current contents of the save buffer after the current +cursor position. The current cursor position shall be advanced to the +last character put from the save buffer. A +.IR count +shall indicate how many copies of the save buffer shall be put. +.IP "\fB[\fIcount\fB]P\fR" 10 +Put a copy of the current contents of the save buffer before the +current cursor position. The current cursor position shall be moved to +the last character put from the save buffer. A +.IR count +shall indicate how many copies of the save buffer shall be put. +.IP "\fBu\fR" 10 +Undo the last command that changed the edit line. This operation shall +not undo the copy of any command line to the edit line. +.IP "\fBU\fR" 10 +Undo all changes made to the edit line. This operation shall not undo +the copy of any command line to the edit line. +.IP "\fB[\fIcount\fB]k\fR" 10 +.sp -0.5v +.IP "\fB[\fIcount\fB]\-\fR" 10 +Set the current command line to be the +.IR count th +previous command line in the shell command history. If +.IR count +is not specified, it shall default to 1. The cursor shall be positioned +on the first character of the new command. If a +.BR k +or +.BR \- +command would retreat past the maximum number of commands in effect for +this shell (affected by the +.IR HISTSIZE +environment variable), the terminal shall be alerted, and the command +shall have no effect. +.IP "\fB[\fIcount\fB]j\fR" 10 +.sp -0.5v +.IP "\fB[\fIcount\fB]+\fR" 10 +Set the current command line to be the +.IR count th +next command line in the shell command history. If +.IR count +is not specified, it shall default to 1. The cursor shall be positioned +on the first character of the new command. If a +.BR j +or +.BR + +command advances past the edit line, the current command line shall be +restored to the edit line and the terminal shall be alerted. +.IP "\fB[\fInumber\fB]G\fR" 10 +Set the current command line to be the oldest command line stored in +the shell command history. With a number +.IR number , +set the current command line to be the command line +.IR number +in the history. If command line +.IR number +does not exist, the terminal shall be alerted and the command line +shall not be changed. +.IP "\fB/\fIpattern\fR<newline>" 10 +.br +Move backwards through the command history, searching for the specified +pattern, beginning with the previous command line. Patterns use the +pattern matching notation described in +.IR "Section 2.13" ", " "Pattern Matching Notation", +except that the +.BR '\(ha' +character shall have special meaning when it appears as the first +character of +.IR pattern . +In this case, the +.BR '\(ha' +is discarded and the characters after the +.BR '\(ha' +shall be matched only at the beginning of a line. Commands in the +command history shall be treated as strings, not as filenames. If the +pattern is not found, the current command line shall be unchanged and +the terminal shall be alerted. If it is found in a previous line, the +current command line shall be set to that line and the cursor shall be +set to the first character of the new command line. +.RS 10 +.P +If +.IR pattern +is empty, the last non-empty pattern provided to +.BR / +or +.BR ? +shall be used. If there is no previous non-empty pattern, the terminal +shall be alerted and the current command line shall remain unchanged. +.RE +.IP "\fB?\fIpattern\fR<newline>" 10 +.br +Move forwards through the command history, searching for the specified +pattern, beginning with the next command line. Patterns use the pattern +matching notation described in +.IR "Section 2.13" ", " "Pattern Matching Notation", +except that the +.BR '\(ha' +character shall have special meaning when it appears as the first +character of +.IR pattern . +In this case, the +.BR '\(ha' +is discarded and the characters after the +.BR '\(ha' +shall be matched only at the beginning of a line. Commands in the +command history shall be treated as strings, not as filenames. If the +pattern is not found, the current command line shall be unchanged and +the terminal shall be alerted. If it is found in a following line, the +current command line shall be set to that line and the cursor shall be +set to the fist character of the new command line. +.RS 10 +.P +If +.IR pattern +is empty, the last non-empty pattern provided to +.BR / +or +.BR ? +shall be used. If there is no previous non-empty pattern, the terminal +shall be alerted and the current command line shall remain unchanged. +.RE +.IP "\fBn\fR" 10 +Repeat the most recent +.BR / +or +.BR ? +command. If there is no previous +.BR / +or +.BR ? , +the terminal shall be alerted and the current command line shall remain +unchanged. +.IP "\fBN\fR" 10 +Repeat the most recent +.BR / +or +.BR ? +command, reversing the direction of the search. If there is no previous +.BR / +or +.BR ? , +the terminal shall be alerted and the current command line shall remain +unchanged. +.SH "EXIT STATUS" +The following exit values shall be returned: +.IP "\0\0\0\00" 8 +The script to be executed consisted solely of zero or more blank lines +or comments, or both. +.IP "1\(hy125" 8 +A non-interactive shell detected an error other than +.IR command_file +not found or executable, including but not limited to syntax, +redirection, or variable assignment errors. +.IP "\0\0126" 8 +A specified +.IR command_file +could not be executed due to an +.BR [ENOEXEC] +error (see +.IR "Section 2.9.1.1" ", " "Command Search and Execution", +item 2). +.IP "\0\0127" 8 +A specified +.IR command_file +could not be found by a non-interactive shell. +.P +Otherwise, the shell shall return the exit status of the last command +it invoked or attempted to invoke (see also the +.IR exit +utility in +.IR "Section 2.14" ", " "Special Built-In Utilities"). +.SH "CONSEQUENCES OF ERRORS" +See +.IR "Section 2.8.1" ", " "Consequences of Shell Errors". +.LP +.IR "The following sections are informative." +.SH "APPLICATION USAGE" +Standard input and standard error are the files that +determine whether a shell is interactive when +.BR \-i +is not specified. For example: +.sp +.RS 4 +.nf + +sh > file +.fi +.P +.RE +.P +and: +.sp +.RS 4 +.nf + +sh 2> file +.fi +.P +.RE +.P +create interactive and non-interactive shells, respectively. Although +both accept terminal input, the results of error conditions are +different, as described in +.IR "Section 2.8.1" ", " "Consequences of Shell Errors"; +in the second example a redirection error encountered by a special +built-in utility aborts the shell. +.P +A conforming application must protect its first operand, if it starts +with a +<plus-sign>, +by preceding it with the +.BR \(dq--\(dq +argument that denotes the end of the options. +.P +Applications should note that the standard +.IR PATH +to the shell cannot be assumed to be either +.BR /bin/sh +or +.BR /usr/bin/sh , +and should be determined by interrogation of the +.IR PATH +returned by +.IR getconf +.IR PATH , +ensuring that the returned pathname is an absolute pathname and not a +shell built-in. +.P +For example, to determine the location of the standard +.IR sh +utility: +.sp +.RS 4 +.nf + +command -v sh +.fi +.P +.RE +.P +On some implementations this might return: +.sp +.RS 4 +.nf + +/usr/xpg4/bin/sh +.fi +.P +.RE +.P +Furthermore, on systems that support executable scripts (the +.BR \(dq#!\(dq +construct), it is recommended that applications using executable +scripts install them using +.IR getconf +.IR PATH +to determine the shell pathname and update the +.BR \(dq#!\(dq +script appropriately as it is being installed (for example, with +.IR sed ). +For example: +.sp +.RS 4 +.nf + +# +# Installation time script to install correct POSIX shell pathname +# +# Get list of paths to check +# +Sifs=$IFS +Sifs_set=${IFS+y} +IFS=: +set -- $(getconf PATH) +if [ "$Sifs_set" = y ] +then + IFS=$Sifs +else + unset IFS +fi +# +# Check each path for \(aqsh\(aq +# +for i +do + if [ -x "${i}"/sh ] + then + Pshell=${i}/sh + fi +done +# +# This is the list of scripts to update. They should be of the +# form \(aq${name}.source\(aq and will be transformed to \(aq${name}\(aq. +# Each script should begin: +# +# #!INSTALLSHELLPATH +# +scripts="a b c" +# +# Transform each script +# +for i in ${scripts} +do + sed -e "s|INSTALLSHELLPATH|${Pshell}|" < ${i}.source > ${i} +done +.fi +.P +.RE +.SH EXAMPLES +.IP " 1." 4 +Execute a shell command from a string: +.RS 4 +.sp +.RS 4 +.nf + +sh -c "cat myfile" +.fi +.P +.RE +.RE +.IP " 2." 4 +Execute a shell script from a file in the current directory: +.RS 4 +.sp +.RS 4 +.nf + +sh my_shell_cmds +.fi +.P +.RE +.RE +.SH RATIONALE +The +.IR sh +utility and the +.IR set +special built-in utility share a common set of options. +.P +The name +.IR IFS +was originally an abbreviation of ``Input Field Separators''; however, +this name is misleading as the +.IR IFS +characters are actually used as field terminators. One justification +for ignoring the contents of +.IR IFS +upon entry to the script, beyond security considerations, is to +assist possible future shell compilers. Allowing +.IR IFS +to be imported from the environment prevents many optimizations that +might otherwise be performed via dataflow analysis of the script +itself. +.P +The text in the STDIN section about non-blocking reads concerns an +instance of +.IR sh +that has been invoked, probably by a C-language program, with standard +input that has been opened using the O_NONBLOCK flag; see +\fIopen\fR() +in the System Interfaces volume of POSIX.1\(hy2017. If the shell did not reset this flag, it would +immediately terminate because no input data would be available yet and +that would be considered the same as end-of-file. +.P +The options associated with a +.IR "restricted shell" +(command name +.IR rsh +and the +.BR \-r +option) were excluded because the standard developers considered that +the implied level of security could not be achieved and they did not +want to raise false expectations. +.P +On systems that support set-user-ID scripts, +a historical trapdoor has been to link a script to the name +.BR \-i . +When it is called by a sequence such as: +.sp +.RS 4 +.nf + +sh - +.fi +.P +.RE +.P +or by: +.sp +.RS 4 +.nf + +#!\ usr/bin/sh\ - +.fi +.P +.RE +.P +the historical systems have assumed that no option letters follow. +Thus, this volume of POSIX.1\(hy2017 allows the single +<hyphen-minus> +to mark the end of the options, in addition to the use of the regular +.BR \(dq--\(dq +argument, because it was considered that the older practice was so +pervasive. An alternative approach is taken by the KornShell, where +real and effective user/group IDs must match for an interactive shell; +this behavior is specifically allowed by this volume of POSIX.1\(hy2017. +.TP 10 +.BR Note: +There are other problems with set-user-ID scripts that the two +approaches described here do not resolve. +.P +.P +The initialization process for the history file can be dependent on the +system start-up files, in that they may contain commands that +effectively preempt the user's settings of +.IR HISTFILE +and +.IR HISTSIZE . +For example, function definition commands are recorded in the history +file, unless the +.IR set +.BR \-o +.IR nolog +option is set. If the system administrator includes function +definitions in some system start-up file called before the +.IR ENV +file, the history file is initialized before the user gets a chance to +influence its characteristics. In some historical shells, the history +file is initialized just after the +.IR ENV +file has been processed. Therefore, it is implementation-defined +whether changes made to +.IR HISTFILE +after the history file has been initialized are effective. +.P +The default messages for the various +.IR MAIL -related +messages are unspecified because they vary across implementations. +Typical messages are: +.sp +.RS 4 +.nf + +"you have mail\en" +.fi +.P +.RE +.P +or: +.sp +.RS 4 +.nf + +"you have new mail\en" +.fi +.P +.RE +.P +It is important that the descriptions of command line editing refer to +the same shell as that in POSIX.1\(hy2008 so that interactive users can also be +application programmers without having to deal with programmatic +differences in their two environments. It is also essential that the +utility name +.IR sh +be specified because this explicit utility name is too firmly rooted in +historical practice of application programs for it to change. +.P +Consideration was given to mandating a diagnostic message when +attempting to set +.IR vi -mode +on terminals that do not support command line editing. However, it is +not historical practice for the shell to be cognizant of all terminal +types and thus be able to detect inappropriate terminals in all cases. +Implementations are encouraged to supply diagnostics in this case +whenever possible, rather than leaving the user in a state where +editing commands work incorrectly. +.P +In early proposals, the KornShell-derived +.IR emacs +mode of command line editing was included, even though the +.IR emacs +editor itself was not. The community of +.IR emacs +proponents was adamant that the full +.IR emacs +editor not be standardized because they were concerned that an attempt +to standardize this very powerful environment would encourage vendors +to ship strictly conforming versions lacking the extensibility required +by the community. The author of the original +.IR emacs +program also expressed his desire to omit the program. Furthermore, +there were a number of historical systems that did not include +.IR emacs , +or included it without supporting it, but there were very few that did +not include and support +.IR vi . +The shell +.IR emacs +command line editing mode was finally omitted because it became +apparent that the KornShell version and the editor being distributed +with the GNU system had diverged in some respects. The author of +.IR emacs +requested that the POSIX +.IR emacs +mode either be deleted or have a significant number of unspecified +conditions. Although the KornShell author agreed to consider changes to +bring the shell into alignment, the standard developers decided to +defer specification at that time. At the time, it was assumed that +convergence on an acceptable definition would occur for a subsequent +draft, but that has not happened, and there appears to be no impetus to +do so. In any case, implementations are free to offer additional +command line editing modes based on the exact models of editors their +users are most comfortable with. +.P +Early proposals had the following list entry in +.IR "vi Line Editing Insert Mode": +.IP "\fR\e\fR" 6 +If followed by the +.IR erase +or +.IR kill +character, that character shall be inserted into the input line. +Otherwise, the +<backslash> +itself shall be inserted into the input line. +.P +However, this is not actually a feature of +.IR sh +command line editing insert mode, but one of some historical terminal +line drivers. Some conforming implementations continue to do this when +the +.IR stty +.BR iexten +flag is set. +.P +In interactive shells, SIGTERM is ignored so that +.IR "kill 0" +does not kill the shell, and SIGINT is caught so that +.IR wait +is interruptible. If the shell does not ignore SIGTTIN, SIGTTOU, and +SIGTSTP signals when it is interactive and the +.BR \-m +option is not in effect, these signals suspend the shell if it is not +a session leader. If it is a session leader, the signals are discarded +if they would stop the process, as required by the System Interfaces volume of POSIX.1\(hy2017, +.IR "Section 2.4.3" ", " "Signal Actions" +for orphaned process groups. +.SH "FUTURE DIRECTIONS" +None. +.SH "SEE ALSO" +.IR "Section 2.9.1.1" ", " "Command Search and Execution", +.IR "Chapter 2" ", " "Shell Command Language", +.IR "\fIcd\fR\^", +.IR "\fIecho\fR\^", +.IR "\fIexit\fR\^", +.IR "\fIfc\fR\^", +.IR "\fIpwd\fR\^", +.IR "invalid", +.IR "\fIset\fR\^", +.IR "\fIstty\fR\^", +.IR "\fItest\fR\^", +.IR "\fItrap\fR\^", +.IR "\fIumask\fR\^", +.IR "\fIvi\fR\^" +.P +The Base Definitions volume of POSIX.1\(hy2017, +.IR "Chapter 8" ", " "Environment Variables", +.IR "Section 12.2" ", " "Utility Syntax Guidelines" +.P +The System Interfaces volume of POSIX.1\(hy2017, +.IR "\fIdup\fR\^(\|)", +.IR "\fIexec\fR\^", +.IR "\fIexit\fR\^(\|)", +.IR "\fIfork\fR\^(\|)", +.IR "\fIopen\fR\^(\|)", +.IR "\fIpipe\fR\^(\|)", +.IR "\fIsignal\fR\^(\|)", +.IR "\fIsystem\fR\^(\|)", +.IR "\fIulimit\fR\^(\|)", +.IR "\fIumask\fR\^(\|)", +.IR "\fIwait\fR\^(\|)" +.\" +.SH COPYRIGHT +Portions of this text are reprinted and reproduced in electronic form +from IEEE Std 1003.1-2017, Standard for Information Technology +-- Portable Operating System Interface (POSIX), The Open Group Base +Specifications Issue 7, 2018 Edition, +Copyright (C) 2018 by the Institute of +Electrical and Electronics Engineers, Inc and The Open Group. +In the event of any discrepancy between this version and the original IEEE and +The Open Group Standard, the original IEEE and The Open Group Standard +is the referee document. The original Standard can be obtained online at +http://www.opengroup.org/unix/online.html . +.PP +Any typographical or formatting errors that appear +in this page are most likely +to have been introduced during the conversion of the source files to +man page format. To report such errors, see +https://www.kernel.org/doc/man-pages/reporting_bugs.html . |