Annotation of 43BSDTahoe/man/man1/sh.1, revision 1.1.1.1

1.1       root        1: .\"    @(#)sh.1        6.3 (Berkeley) 5/5/86
                      2: .\"
                      3: .TH SH 1 "May 5, 1986"
                      4: .AT 3
                      5: .SH NAME
                      6: sh, for, case, if, while, \fB:\fP, \fB.\fP, break, continue, cd, eval, exec, exit, export, login, read, readonly, set, shift, times, trap, umask, wait \- command language
                      7: .SH SYNOPSIS
                      8: .B sh
                      9: [
                     10: .B \-ceiknrstuvx
                     11: ] [ arg ] ...
                     12: .ds OK [\|
                     13: .ds CK \|]
                     14: .ds LT \s-2<\s0
                     15: .ds GT \s-2>\s0
                     16: .ds LE \s-2<\s0
                     17: .ds ST *
                     18: .SH DESCRIPTION
                     19: .I Sh
                     20: is a command programming language that executes commands read from a terminal
                     21: or a file.  See
                     22: .B invocation
                     23: for the meaning of arguments to the shell.
                     24: .PP
                     25: .B Commands.
                     26: .br
                     27: A
                     28: .I simple-command
                     29: is a sequence of non blank
                     30: .I words
                     31: separated by blanks (a blank is a
                     32: .B tab
                     33: or a
                     34: .BR space ).
                     35: The first word specifies the name of the command to be executed.
                     36: Except as specified below the remaining words are passed as arguments
                     37: to the invoked command.
                     38: The command name is passed as argument 0 (see
                     39: .IR execve (2)).
                     40: The
                     41: .I value
                     42: of a simple-command is its exit status
                     43: if it terminates normally or 200+\fIstatus\fP if it terminates abnormally (see
                     44: .IR sigvec (2)
                     45: for a list of status values).
                     46: .LP
                     47: A
                     48: .I pipeline
                     49: is a sequence of one or more
                     50: .I commands
                     51: separated by
                     52: .B \(or.
                     53: The standard output of each command but the last is connected by a
                     54: .IR pipe (2)
                     55: to the standard input of the next command.
                     56: Each command is run as a separate process;
                     57: the shell waits for the last command to terminate.
                     58: .LP
                     59: A
                     60: .I list
                     61: is a sequence of one or more
                     62: .I pipelines
                     63: separated by
                     64: .BR ; ,
                     65: .BR & ,
                     66: .B &&
                     67: or
                     68: .B \(or\|\(or
                     69: and optionally terminated by
                     70: .B ;
                     71: or
                     72: .BR & .
                     73: .B ;
                     74: and
                     75: .B &
                     76: have equal precedence which is lower than that of
                     77: .B &&
                     78: and
                     79: .BR \(or\|\(or ,
                     80: .B &&
                     81: and
                     82: .B \(or\|\(or
                     83: also have equal precedence.
                     84: A semicolon causes sequential execution; an ampersand causes the preceding
                     85: .I pipeline
                     86: to be executed without waiting for it to finish.  The symbol
                     87: .B &&
                     88: .RB ( \(or\|\(or )
                     89: causes the
                     90: .I list
                     91: following to be executed only if the preceding
                     92: .I pipeline
                     93: returns a zero (non zero) value.  Newlines may appear in a
                     94: .I list,
                     95: instead of semicolons, to delimit commands.
                     96: .LP
                     97: A
                     98: .I command
                     99: is either a simple-command or one of the following.
                    100: The value returned by a command is that of the
                    101: last simple-command executed in the command.
                    102: .TP
                    103: \fBfor \fIname\fR \*(OK\fBin \fIword\fR ...\*(CK \fBdo \fIlist \fBdone\fR
                    104: Each time a
                    105: .B for
                    106: command is executed
                    107: .I name
                    108: is set to the next word in the
                    109: .B for
                    110: word list.
                    111: If
                    112: .BI in \ word
                    113: \&...
                    114: is omitted,
                    115: .B
                    116: in "$@"
                    117: is assumed.  Execution ends when there are no more words in the list.
                    118: .TP
                    119: \fBcase \fIword \fBin\fR \*(OK\fIpattern \fR\*(OK \fB\(or \fIpattern \fR\*(CK ... \fB) \fIlist \fB;;\fR\*(CK ... \fBesac\fR
                    120: A
                    121: .B case
                    122: command executes the
                    123: .I list
                    124: associated with the first pattern that matches
                    125: .I word.
                    126: The form of the patterns is the same as that used for file name generation.
                    127: .TP
                    128: \fBif \fIlist \fBthen \fIlist\fR \*(OK\fBelif \fIlist \fBthen \fIlist\fR\*(CK ... \*(OK\fBelse \fIlist\fR\*(CK \fBfi\fR
                    129: The
                    130: .I list
                    131: following
                    132: .B if
                    133: is executed and if it returns zero the
                    134: .I list
                    135: following
                    136: .B then
                    137: is executed.  Otherwise, the
                    138: .I list
                    139: following
                    140: .B elif
                    141: is executed and if its value is zero the
                    142: .I list
                    143: following
                    144: .B then
                    145: is executed.  Failing that the
                    146: .B else
                    147: .I list
                    148: is executed.
                    149: .TP
                    150: \fBwhile \fIlist\fR \*(OK\fBdo \fIlist\fR\*(CK \fBdone\fR
                    151: A
                    152: .B while
                    153: command repeatedly executes the
                    154: .B while
                    155: .I list
                    156: and if its value is zero executes the
                    157: .B do
                    158: .I list;
                    159: otherwise the loop terminates.  The value returned by a
                    160: .B while
                    161: command is that of the last executed command in the
                    162: .B do
                    163: .I list.
                    164: .B until
                    165: may be used in place of
                    166: .B while
                    167: to negate the loop termination test.
                    168: .TP
                    169: .BI ( " list " )
                    170: Execute
                    171: .I list
                    172: in a subshell.
                    173: .TP
                    174: .BI { " list " }
                    175: .I list
                    176: is simply executed.
                    177: .LP
                    178: The following words are only recognized as the first word of a command
                    179: and when not quoted.
                    180: .IP
                    181: .B
                    182: if then else elif fi case in esac for while until do done { }
                    183: .PP
                    184: .B Command substitution.
                    185: .br
                    186: The standard output from a command enclosed in a pair of back quotes 
                    187: .RB ( \`\|\` )
                    188: may be used as part or all of a word; trailing newlines are removed.
                    189: .PP
                    190: .B Parameter substitution.
                    191: .br
                    192: The character
                    193: .B $
                    194: is used to introduce substitutable parameters.
                    195: Positional parameters may be assigned values by
                    196: .BR set .
                    197: Variables may be set by writing
                    198: .IP
                    199: .IB name = value
                    200: [
                    201: .IB name = value
                    202: ] ...
                    203: .TP
                    204: $\fB\|{\fIparameter\fB\|}\fR
                    205: A
                    206: .I parameter
                    207: is a sequence of letters, digits or underscores (a
                    208: .IR name ),
                    209: a digit, or any of the characters
                    210: .B
                    211: * @ # ? \- $ !\|.
                    212: The value, if any, of the parameter is substituted.
                    213: The braces are required only when
                    214: .I parameter
                    215: is followed by a letter, digit, or underscore
                    216: that is not to be interpreted as part of its name.  If
                    217: .I parameter
                    218: is a digit, it is a positional parameter.  If
                    219: .I parameter
                    220: is
                    221: .BR * " or" " @"
                    222: then all the positional parameters, starting with
                    223: .SM
                    224: .BR $1 ,
                    225: are substituted separated by spaces.
                    226: .SM
                    227: .B $0
                    228: is set from argument zero when the shell is invoked.
                    229: .TP
                    230: $\fB\|{\fIparameter\|\-word\|\fB}\fR
                    231: If
                    232: .I parameter
                    233: is set, substitute its value; otherwise substitute
                    234: .I word.
                    235: .TP
                    236: $\fB\|{\fIparameter\|\(eq\|word\|\fB}\fR
                    237: If
                    238: .I parameter
                    239: is not set, set it to
                    240: .I word;
                    241: the value of the parameter is then substituted.
                    242: Positional parameters may not be assigned to in this way.
                    243: .TP
                    244: $\fB\|{\fIparameter\|?\|word\|\fB}\fR
                    245: If
                    246: .I parameter
                    247: is set, substitute its value; otherwise, print
                    248: .I word
                    249: and exit from the shell.  If
                    250: .I word
                    251: is omitted, a standard message is printed.
                    252: .TP
                    253: $\fB\|{\fIparameter\|\(plword\|\fB}\fR
                    254: If
                    255: .I parameter
                    256: is set, substitute
                    257: .I word;
                    258: otherwise substitute nothing.
                    259: .LP
                    260: In the above
                    261: .I word
                    262: is not evaluated unless it is to be used as the substituted string.
                    263: (So that, for example, echo ${d\-\'pwd\'} will only execute
                    264: .I pwd
                    265: if
                    266: .I d
                    267: is unset.)
                    268: .LP
                    269: The following
                    270: .I parameters
                    271: are automatically set by the shell.
                    272: .RS
                    273: .TP
                    274: .B #
                    275: The number of positional parameters in decimal.
                    276: .PD 0
                    277: .TP
                    278: .B \-
                    279: Options supplied to the shell on invocation or by
                    280: .BR set .
                    281: .TP
                    282: .B ?
                    283: The value returned by the last executed command in decimal.
                    284: .TP
                    285: .B $
                    286: The process number of this shell.
                    287: .TP
                    288: .B !
                    289: The process number of the last background command invoked.
                    290: .PD
                    291: .RE
                    292: .LP
                    293: The following
                    294: .I parameters
                    295: are used but not set by the shell.
                    296: .RS
                    297: .TP
                    298: .B
                    299: .SM HOME
                    300: The default argument (home directory) for the
                    301: .B cd
                    302: command.
                    303: .PD 0
                    304: .TP
                    305: .B
                    306: .SM PATH
                    307: The search path for commands (see
                    308: .BR execution ).
                    309: .TP
                    310: .B
                    311: .SM MAIL
                    312: If this variable is set to the name of
                    313: a mail file, the shell informs the user of
                    314: the arrival of mail in the specified file.
                    315: .SM
                    316: .TP
                    317: .B PS1
                    318: Primary prompt string, by default '$ '.
                    319: .TP
                    320: .SM
                    321: .B PS2
                    322: Secondary prompt string, by default '> '.
                    323: .TP
                    324: .SM
                    325: .B IFS
                    326: Internal field separators, normally
                    327: .BR space ,
                    328: .BR tab ,
                    329: and
                    330: .BR newline .
                    331: .B IFS
                    332: is ignored if 
                    333: .I sh
                    334: is running as root or if the effective user id differs from the real user id.
                    335: .PD
                    336: .RE
                    337: .PP
                    338: .B Blank interpretation.
                    339: .br
                    340: After parameter and command substitution,
                    341: any results of substitution are scanned for internal field separator
                    342: characters (those found in
                    343: .SM
                    344: .BR $IFS \*S)
                    345: and split into distinct arguments where such characters are found.
                    346: Explicit null arguments ("" or \'\') are retained.
                    347: Implicit null arguments (those resulting from
                    348: .I parameters
                    349: that have no values) are removed.
                    350: .PP
                    351: .B File name generation.
                    352: .br
                    353: Following substitution, each command word is scanned for the characters
                    354: .BR * ,
                    355: .B ?
                    356: and
                    357: .B \*(OK.
                    358: If one of these characters appears, the word is regarded as a pattern.
                    359: The word is replaced with alphabetically sorted file names that match the
                    360: pattern.  If no file name is found that matches the pattern,
                    361: the word is left unchanged.  The character
                    362: .B .
                    363: at the start of a file name or immediately following a
                    364: .BR / ,
                    365: and the character
                    366: .BR / ,
                    367: must be matched explicitly.
                    368: .TP 
                    369: .B \*(ST
                    370: Matches any string, including the null string.
                    371: .PD 0
                    372: .TP 
                    373: .B ?
                    374: Matches any single character.
                    375: .TP 
                    376: .B \*(OK...\*(CK
                    377: Matches any one of the characters enclosed.
                    378: A pair of characters separated by
                    379: .B \-
                    380: matches any character lexically between the pair.
                    381: .PD
                    382: .PP
                    383: .B Quoting.
                    384: .br
                    385: The following characters have a special meaning to the shell
                    386: and cause termination of a word unless quoted.
                    387: .LP
                    388:        \fB;   &   (   )   \(or   \*(LT   \*(GT   newline   space   tab\fP
                    389: .LP
                    390: A character may be
                    391: .I quoted
                    392: by preceding it with a
                    393: .B
                    394: \\\|.
                    395: .B \\\\newline
                    396: is ignored.
                    397: All characters enclosed between a pair of quote marks (\fB\'\|\'\fP),
                    398: except a single quote, are quoted.  Inside double quotes (\fB"\|"\fP)
                    399: parameter and command substitution occurs and
                    400: .B
                    401: \\
                    402: quotes the characters
                    403: .B
                    404: \\ \' "
                    405: and
                    406: .BR $ \|.
                    407: .LP
                    408: .B
                    409: "$*"
                    410: is equivalent to
                    411: .SM
                    412: .B
                    413: "$1 $2 ..."
                    414: whereas
                    415: .br
                    416: .B
                    417: "$@"
                    418: is equivalent to
                    419: .SM
                    420: .B
                    421: "$1" "$2" ... .
                    422: .PP
                    423: .B Prompting.
                    424: .br
                    425: When used interactively, the shell prompts with the value of
                    426: .SM
                    427: PS1
                    428: before reading a command.
                    429: If at any time a newline is typed and further input is needed
                    430: to complete a command, the secondary prompt
                    431: .RB ( \s-2$PS2\s0 )
                    432: is issued.
                    433: .PP
                    434: .B Input output.
                    435: .br
                    436: Before a command is executed its input and output
                    437: may be redirected using a special notation interpreted by the shell.
                    438: The following may appear anywhere in a simple-command
                    439: or may precede or follow a
                    440: .I command
                    441: and are not passed on to the invoked command.
                    442: Substitution occurs before
                    443: .I word
                    444: or
                    445: .I digit
                    446: is used.
                    447: .TP
                    448: \*(LT\fI\|word\fP
                    449: Use file
                    450: .I word
                    451: as standard input (file descriptor 0).
                    452: .PD
                    453: .TP
                    454: \*(GT\fI\|word\fP
                    455: Use file
                    456: .I word
                    457: as standard output (file descriptor 1).
                    458: If the file does not exist, it is created;
                    459: otherwise it is truncated to zero length.
                    460: .TP
                    461: \*(GT\*(GT\fI\|word\fP
                    462: Use file
                    463: .I word
                    464: as standard output.
                    465: If the file exists, output is appended (by seeking to the end);
                    466: otherwise the file is created.
                    467: .TP
                    468: \*(LT\*(LT\fI\|word\fP
                    469: The shell input is read up to a line the same as
                    470: .IR word ,
                    471: or end of file.
                    472: The resulting document becomes the standard input.
                    473: If any character of
                    474: .I word
                    475: is quoted, no interpretation is placed upon the characters of the document;
                    476: otherwise, parameter and command substitution occurs,
                    477: .B
                    478: \\newline
                    479: is ignored, and
                    480: .B
                    481: \\
                    482: is used to quote the characters
                    483: .B
                    484: \\ $ \'
                    485: and the first character of
                    486: .I word.
                    487: .TP
                    488: \*(LT\|&\|\fIdigit\fP
                    489: The standard input is duplicated from file descriptor
                    490: .I digit;
                    491: see
                    492: .IR dup (2).
                    493: Similarly for the standard output using \*(GT\|.
                    494: .TP
                    495: \*(LT\|&\|\-
                    496: The standard input is closed.
                    497: Similarly for the standard output using \*(GT\|.
                    498: .PD
                    499: .LP
                    500: If one of the above is preceded by a digit, the
                    501: file descriptor created is that specified by the digit
                    502: (instead of the default 0 or 1).  For example,
                    503: .LP
                    504:        \&... 2\*(GT&1
                    505: .LP
                    506: creates file descriptor 2 to be a duplicate
                    507: of file descriptor 1.
                    508: .LP
                    509: If a command is followed by
                    510: .B &
                    511: then the default standard input for the command is the empty file
                    512: (/dev/null).
                    513: Otherwise, the environment for the execution of a command contains the
                    514: file descriptors of the invoking shell as modified by input
                    515: output specifications.
                    516: .PP
                    517: .B Environment.
                    518: .br
                    519: The environment is a list of name-value pairs that is passed to
                    520: an executed program in the same way as a normal argument list; see
                    521: .IR execve (2)
                    522: and
                    523: .IR environ (7).
                    524: The shell interacts with the environment in several ways.
                    525: On invocation, the shell scans the environment and creates a
                    526: .I parameter
                    527: for each name found, giving it the corresponding value.
                    528: Executed commands inherit the same environment.
                    529: If the user modifies the values of these
                    530: .I parameters
                    531: or creates new ones, none of these affects the environment unless the
                    532: .B export
                    533: command is used to bind the shell's
                    534: .I parameter
                    535: to the environment.
                    536: The environment seen by any executed command is thus composed
                    537: of any unmodified name-value pairs originally inherited by the shell,
                    538: plus any modifications or additions, all of which must be noted in
                    539: .B export
                    540: commands.
                    541: .LP
                    542: The environment for any
                    543: .I simple-command
                    544: may be augmented by prefixing it with one or more assignments to
                    545: .I parameters.
                    546: Thus these two lines are equivalent
                    547: .IP
                    548: TERM=450 cmd args
                    549: .br
                    550: (export TERM; TERM=450; cmd args)
                    551: .LP
                    552: If the
                    553: .B \-k
                    554: flag is set,
                    555: .I all
                    556: keyword arguments are placed in the environment,
                    557: even if the occur after the command name.
                    558: The following prints 'a=b c' and 'c':
                    559: .nf
                    560: echo a=b c
                    561: set \-k
                    562: echo a=b c
                    563: .fi
                    564: .PP
                    565: .B Signals.
                    566: .br
                    567: The INTERRUPT and QUIT signals for an invoked
                    568: command are ignored if the command is followed by
                    569: .BR & ;
                    570: otherwise signals have the values inherited by the shell from its parent.
                    571: (But see also
                    572: .BR trap. )
                    573: .PP
                    574: .B Execution.
                    575: .br
                    576: Each time a command is executed the above substitutions are carried out.
                    577: Except for the 'special commands' listed below a new process is created and
                    578: an attempt is made to execute the command via an
                    579: .IR execve (2).
                    580: .LP
                    581: The shell parameter
                    582: .B
                    583: .SM $PATH
                    584: defines the search path for the directory containing the command.
                    585: Each alternative directory name is separated by a colon
                    586: .RB ( : ).
                    587: The default path is
                    588: .BR :/bin:/usr/bin .
                    589: If the command name contains a /, the search path is not used.
                    590: Otherwise, each directory in the path is searched for an executable file.
                    591: If the file has execute permission but is not an
                    592: .I a.out
                    593: file, it is assumed to be a file containing shell commands.
                    594: A subshell (i.e., a separate process) is spawned to read it.
                    595: A parenthesized command is also executed in a subshell.
                    596: .PP
                    597: .B Special commands.
                    598: .br
                    599: The following commands are executed in the shell process
                    600: and except where specified
                    601: no input output redirection is permitted for such commands.
                    602: .TP
                    603: .B #
                    604: For non-interactive shells, everything following the
                    605: .B #
                    606: is treated as a comment, i.e. the rest of the line is ignored.
                    607: For interactive shells, the
                    608: .B #
                    609: has no special effect.
                    610: .TP
                    611: .B :
                    612: No effect; the command does nothing.
                    613: .PD 0
                    614: .TP
                    615: .BI . \ file
                    616: Read and execute commands from
                    617: .I file
                    618: and return.  The search path
                    619: .B
                    620: .SM $PATH
                    621: is used to find the directory containing
                    622: .IR file .
                    623: .TP
                    624: \fBbreak\fR \*(OK\fIn\fR\*(CK
                    625: Exit from the enclosing
                    626: .B for
                    627: or
                    628: .B while
                    629: loop, if any.
                    630: If
                    631: .I n
                    632: is specified, break
                    633: .I n
                    634: levels.
                    635: .TP
                    636: \fBcontinue\fR \*(OK\fIn\fR\*(CK
                    637: Resume the next iteration of the enclosing
                    638: .B for
                    639: or
                    640: .B while
                    641: loop.  If
                    642: .I n
                    643: is specified, resume at the
                    644: .IR n -th
                    645: enclosing loop.
                    646: .TP
                    647: \fBcd\fR \*(OK\fIarg\fR\*(CK
                    648: Change the current directory to
                    649: .I arg.
                    650: The shell parameter
                    651: .B
                    652: .SM $HOME
                    653: is the default
                    654: .IR arg .
                    655: .TP
                    656: \fBeval\fR \*(OK\fIarg \fR...\*(CK
                    657: The arguments are read as input to the shell
                    658: and the resulting command(s) executed.
                    659: .TP
                    660: \fBexec\fR \*(OK\fIarg \fR...\*(CK
                    661: The command specified by the arguments is executed in place of this shell
                    662: without creating a new process.
                    663: Input output arguments may appear and if no other
                    664: arguments are given cause the shell input output to be modified.
                    665: .TP
                    666: \fBexit\fR \*(OK\fIn\fR\*(CK
                    667: Causes a non interactive shell to exit with the exit status specified by
                    668: .I n.
                    669: If
                    670: .I n
                    671: is omitted, the exit status is that of the last command executed.
                    672: (An end of file will also exit from the shell.)
                    673: .TP
                    674: \fBexport\fR \*(OK\fIname\fR ...\*(CK
                    675: The given names are marked for automatic export to the
                    676: .I environment
                    677: of subsequently-executed commands.
                    678: If no arguments are given, a list of exportable names is printed.
                    679: .TP
                    680: \fBlogin\fR \*(OK\fIarg\fR ...\*(CK
                    681: Equivalent to 'exec login arg ...'.
                    682: .TP
                    683: .BI read \ name\ ...
                    684: One line is read from the standard input;
                    685: successive words of the input are assigned to the variables
                    686: .I name
                    687: in order, with leftover words to the last variable.
                    688: The return code is 0 unless the end-of-file is encountered.
                    689: .TP
                    690: \fBreadonly\fR \*(OK\fIname \fR...\*(CK
                    691: The given names are marked readonly and
                    692: the values of the these names may not be changed
                    693: by subsequent assignment.
                    694: If no arguments are given, a list of all readonly names is printed.
                    695: .TP
                    696: \fBset\fR \*(OK\fB\-eknptuvx\fR \*(OK\fIarg \fR...\*(CK\*(CK
                    697: .RS
                    698: .PD 0
                    699: .TP 3m
                    700: .B \-e
                    701: If non interactive, exit immediately if a command fails.
                    702: .TP
                    703: .B \-k
                    704: All keyword arguments are placed in the environment for a command,
                    705: not just those that precede the command name.
                    706: .TP
                    707: .B \-n
                    708: Read commands but do not execute them.
                    709: .TP
                    710: .B \-t
                    711: Exit after reading and executing one command.
                    712: .TP
                    713: .B \-u
                    714: Treat unset variables as an error when substituting.
                    715: .TP
                    716: .B \-v
                    717: Print shell input lines as they are read.
                    718: .TP
                    719: .B \-x
                    720: Print commands and their arguments as they are executed.
                    721: .TP
                    722: .B \-
                    723: Turn off the
                    724: .B \-x
                    725: and
                    726: .B \-v
                    727: options.
                    728: .PD
                    729: .LP
                    730: These flags can also be used upon invocation of the shell.
                    731: The current set of flags may be found in
                    732: .BR $\- .
                    733: .LP
                    734: Remaining arguments are positional
                    735: parameters and are assigned, in order, to
                    736: .SM
                    737: .BR $1 ,
                    738: .SM
                    739: .BR $2 ,
                    740: etc.  If no arguments are given, the values of all names are printed.
                    741: .RE
                    742: .TP
                    743: .B shift
                    744: The positional parameters from
                    745: .SM
                    746: .BR $2 ...
                    747: are renamed
                    748: .SM
                    749: .BR $1 ...
                    750: .TP
                    751: .B times
                    752: Print the accumulated user and system times for processes run from the shell.
                    753: .TP
                    754: \fBtrap\fR \*(OK\fIarg\fR\*(CK \*(OK\fIn\fR\*(CK ...
                    755: .I Arg
                    756: is a command to be read and executed when the shell receives signal(s)
                    757: .I n.
                    758: (Note that
                    759: .I arg
                    760: is scanned once when the trap is set and once when the trap is taken.)
                    761: Trap commands are executed in order of signal number.  If
                    762: .I arg
                    763: is absent, all trap(s)
                    764: .I n
                    765: are reset to their original values.
                    766: If
                    767: .I arg
                    768: is the null
                    769: string, this signal is ignored by the shell and by invoked commands.
                    770: If
                    771: .I n
                    772: is 0, the command
                    773: .I arg
                    774: is executed on exit from the shell, otherwise upon receipt of signal
                    775: .I n
                    776: as numbered in
                    777: .IR sigvec (2).
                    778: .I Trap
                    779: with no arguments prints a list of commands associated with each signal number.
                    780: .TP
                    781: \fBumask \fR[ \fInnn\fR ]
                    782: The user file creation mask is set to the octal value
                    783: .I nnn
                    784: (see
                    785: .IR umask (2)).
                    786: If
                    787: .I nnn
                    788: is omitted, the current value of the mask is printed.
                    789: .TP
                    790: \fBwait\fP \*(OK\fIn\fP\*(CK
                    791: Wait for the specified process and report its termination status.  If
                    792: .I n
                    793: is not given, all currently active child processes are waited for.
                    794: The return code from this command is that of the process waited for.
                    795: .PD
                    796: .LP
                    797: .PP
                    798: .B Invocation.
                    799: .br
                    800: If the first character of argument zero is
                    801: .BR \- ,
                    802: commands are read from
                    803: .BR \s-2$HOME\s0/.\|profile ,
                    804: if such a file exists.
                    805: Commands are then read as described below.
                    806: The following flags are interpreted by the shell when it is invoked.
                    807: .PD 0
                    808: .TP 11n
                    809: .BI \-c \ string
                    810: If the
                    811: .B \-c
                    812: flag is present, commands are read from
                    813: .I string\|.
                    814: .TP 11n
                    815: .B \-s
                    816: If the
                    817: .B \-s
                    818: flag is present or if no arguments remain
                    819: then commands are read from the standard input.
                    820: Shell output is written to file descriptor 2.
                    821: .TP 11n
                    822: .B \-i
                    823: If the
                    824: .B \-i
                    825: flag is present or
                    826: if the shell input and output are attached to a terminal (as told by
                    827: .IR gtty )
                    828: then this shell is
                    829: .I interactive.
                    830: In this case the terminate signal SIGTERM (see
                    831: .IR sigvec (2))
                    832: is ignored (so that 'kill 0'
                    833: does not kill an interactive shell) and the interrupt signal
                    834: SIGINT is caught and ignored (so that
                    835: .B wait
                    836: is interruptible).
                    837: In all cases SIGQUIT is ignored by the shell.
                    838: .PD
                    839: .LP
                    840: The remaining flags and arguments are described under the
                    841: .B set
                    842: command.
                    843: .SH FILES
                    844: .RB $HOME/ . \^profile
                    845: .br
                    846: /tmp/sh*
                    847: .br
                    848: /dev/null
                    849: .SH SEE ALSO
                    850: csh(1),
                    851: test(1),
                    852: execve(2),
                    853: environ(7)
                    854: .SH DIAGNOSTICS
                    855: Errors detected by the shell, such as syntax errors cause the shell
                    856: to return a non zero exit status.
                    857: If the shell is being used non interactively
                    858: then execution of the shell file is abandoned.
                    859: Otherwise, the shell returns the exit status of
                    860: the last command executed (see also
                    861: .BR exit ).
                    862: .SH BUGS
                    863: If \*(LT\*(LT is used to provide standard input to an asynchronous
                    864: process invoked by &, the shell gets mixed up about naming the input document.
                    865: A garbage file /tmp/sh* is created, and the shell complains about
                    866: not being able to find the file by another name.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.