e968ec7cf52931a49c3aa66528401d52f81d6b4b
[platform/upstream/bash.git] / builtins / reserved.def
1 This file is reserved.def, in which the shell reserved words are defined.
2 It has no direct C file production, but defines builtins for the Bash
3 builtin help command.
4
5 Copyright (C) 1987-2006 Free Software Foundation, Inc.
6
7 This file is part of GNU Bash, the Bourne Again SHell.
8
9 Bash is free software; you can redistribute it and/or modify it under
10 the terms of the GNU General Public License as published by the Free
11 Software Foundation; either version 2, or (at your option) any later
12 version.
13
14 Bash is distributed in the hope that it will be useful, but WITHOUT ANY
15 WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
17 for more details.
18
19 You should have received a copy of the GNU General Public License along
20 with Bash; see the file COPYING.  If not, write to the Free Software
21 Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA.
22
23 $BUILTIN for
24 $SHORT_DOC for NAME [in WORDS ... ;] do COMMANDS; done
25 The `for' loop executes a sequence of commands for each member in a
26 list of items.  If `in WORDS ...;' is not present, then `in "$@"' is
27 assumed.  For each element in WORDS, NAME is set to that element, and
28 the COMMANDS are executed.
29 $END
30
31 $BUILTIN for ((
32 $DOCNAME arith_for
33 $SHORT_DOC for (( exp1; exp2; exp3 )); do COMMANDS; done
34 Equivalent to
35         (( EXP1 ))
36         while (( EXP2 )); do
37                 COMMANDS
38                 (( EXP3 ))
39         done
40 EXP1, EXP2, and EXP3 are arithmetic expressions.  If any expression is
41 omitted, it behaves as if it evaluates to 1.
42 $END
43
44 $BUILTIN select
45 $SHORT_DOC select NAME [in WORDS ... ;] do COMMANDS; done
46 The WORDS are expanded, generating a list of words.  The
47 set of expanded words is printed on the standard error, each
48 preceded by a number.  If `in WORDS' is not present, `in "$@"'
49 is assumed.  The PS3 prompt is then displayed and a line read
50 from the standard input.  If the line consists of the number
51 corresponding to one of the displayed words, then NAME is set
52 to that word.  If the line is empty, WORDS and the prompt are
53 redisplayed.  If EOF is read, the command completes.  Any other
54 value read causes NAME to be set to null.  The line read is saved
55 in the variable REPLY.  COMMANDS are executed after each selection
56 until a break command is executed.
57 $END
58
59 $BUILTIN time
60 $SHORT_DOC time [-p] PIPELINE
61 Execute PIPELINE and print a summary of the real time, user CPU time,
62 and system CPU time spent executing PIPELINE when it terminates.
63 The return status is the return status of PIPELINE.  The `-p' option
64 prints the timing summary in a slightly different format.  This uses
65 the value of the TIMEFORMAT variable as the output format.
66 $END
67
68 $BUILTIN case
69 $SHORT_DOC case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac
70 Selectively execute COMMANDS based upon WORD matching PATTERN.  The
71 `|' is used to separate multiple patterns.
72 $END
73
74 $BUILTIN if
75 $SHORT_DOC if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi
76 The `if COMMANDS' list is executed.  If its exit status is zero, then the
77 `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is
78 executed in turn, and if its exit status is zero, the corresponding
79 `then COMMANDS' list is executed and the if command completes.  Otherwise,
80 the `else COMMANDS' list is executed, if present.  The exit status of the
81 entire construct is the exit status of the last command executed, or zero
82 if no condition tested true.
83 $END
84
85 $BUILTIN while
86 $SHORT_DOC while COMMANDS; do COMMANDS; done
87 Expand and execute COMMANDS as long as the final command in the
88 `while' COMMANDS has an exit status of zero.
89 $END
90
91 $BUILTIN until
92 $SHORT_DOC until COMMANDS; do COMMANDS; done
93 Expand and execute COMMANDS as long as the final command in the
94 `until' COMMANDS has an exit status which is not zero.
95 $END
96
97 $BUILTIN function
98 $SHORT_DOC function NAME { COMMANDS ; } or NAME () { COMMANDS ; }
99 Create a simple command invoked by NAME which runs COMMANDS.
100 Arguments on the command line along with NAME are passed to the
101 function as $0 .. $n.
102 $END
103
104 $BUILTIN { ... }
105 $DOCNAME grouping_braces
106 $SHORT_DOC { COMMANDS ; }
107 Run a set of commands in a group.  This is one way to redirect an
108 entire set of commands.
109 $END
110
111 $BUILTIN %
112 $DOCNAME fg_percent
113 $SHORT_DOC JOB_SPEC [&]
114 Equivalent to the JOB_SPEC argument to the `fg' command.  Resume a
115 stopped or background job.  JOB_SPEC can specify either a job name
116 or a job number.  Following JOB_SPEC with a `&' places the job in
117 the background, as if the job specification had been supplied as an
118 argument to `bg'.
119 $END
120
121 $BUILTIN (( ... ))
122 $DOCNAME arith
123 $SHORT_DOC (( expression ))
124 The EXPRESSION is evaluated according to the rules for arithmetic
125 evaluation.  Equivalent to "let EXPRESSION".
126 $END
127
128 $BUILTIN [[ ... ]]
129 $DOCNAME conditional
130 $SHORT_DOC [[ expression ]]
131 Returns a status of 0 or 1 depending on the evaluation of the conditional
132 expression EXPRESSION.  Expressions are composed of the same primaries used
133 by the `test' builtin, and may be combined using the following operators
134
135         ( EXPRESSION )  Returns the value of EXPRESSION
136         ! EXPRESSION    True if EXPRESSION is false; else false
137         EXPR1 && EXPR2  True if both EXPR1 and EXPR2 are true; else false
138         EXPR1 || EXPR2  True if either EXPR1 or EXPR2 is true; else false
139
140 When the `==' and `!=' operators are used, the string to the right of the
141 operator is used as a pattern and pattern matching is performed.  The
142 && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to
143 determine the expression's value.
144 $END
145
146 $BUILTIN variables
147 $DOCNAME variable_help
148 $SHORT_DOC variables - Some variable names and meanings
149 BASH_VERSION    Version information for this Bash.
150 CDPATH  A colon-separated list of directories to search
151                 for directries given as arguments to `cd'.
152 GLOBIGNORE      A colon-separated list of patterns describing filenames to
153                 be ignored by pathname expansion.
154 #if defined (HISTORY)
155 HISTFILE        The name of the file where your command history is stored.
156 HISTFILESIZE    The maximum number of lines this file can contain.
157 HISTSIZE        The maximum number of history lines that a running
158                 shell can access.
159 #endif /* HISTORY */
160 HOME    The complete pathname to your login directory.
161 HOSTNAME        The name of the current host.
162 HOSTTYPE        The type of CPU this version of Bash is running under.
163 IGNOREEOF       Controls the action of the shell on receipt of an EOF
164                 character as the sole input.  If set, then the value
165                 of it is the number of EOF characters that can be seen
166                 in a row on an empty line before the shell will exit
167                 (default 10).  When unset, EOF signifies the end of input.
168 MACHTYPE        A string describing the current system Bash is running on.
169 MAILCHECK       How often, in seconds, Bash checks for new mail.
170 MAILPATH        A colon-separated list of filenames which Bash checks
171                 for new mail.
172 OSTYPE  The version of Unix this version of Bash is running on.
173 PATH    A colon-separated list of directories to search when
174                 looking for commands.
175 PROMPT_COMMAND  A command to be executed before the printing of each
176                 primary prompt.
177 PS1             The primary prompt string.
178 PS2             The secondary prompt string.
179 PWD             The full pathname of the current directory.
180 SHELLOPTS       A colon-separated list of enabled shell options.
181 TERM    The name of the current terminal type.
182 TIMEFORMAT      The output format for timing statistics displayed by the
183                 `time' reserved word.
184 auto_resume     Non-null means a command word appearing on a line by
185                 itself is first looked for in the list of currently
186                 stopped jobs.  If found there, that job is foregrounded.
187                 A value of `exact' means that the command word must
188                 exactly match a command in the list of stopped jobs.  A
189                 value of `substring' means that the command word must
190                 match a substring of the job.  Any other value means that
191                 the command must be a prefix of a stopped job.
192 #if defined (HISTORY)
193 #  if defined (BANG_HISTORY)
194 histchars       Characters controlling history expansion and quick
195                 substitution.  The first character is the history
196                 substitution character, usually `!'.  The second is
197                 the `quick substitution' character, usually `^'.  The
198                 third is the `history comment' character, usually `#'.
199 #  endif /* BANG_HISTORY */
200 HISTIGNORE      A colon-separated list of patterns used to decide which
201                 commands should be saved on the history list.
202 #endif /* HISTORY */
203 $END