1 /***********************************************************************
2 *                                                                      *
3 *               This software is part of the ast package               *
4 *           Copyright (c) 1982-2007 AT&T Knowledge Ventures            *
5 *                      and is licensed under the                       *
6 *                  Common Public License, Version 1.0                  *
7 *                      by AT&T Knowledge Ventures                      *
8 *                                                                      *
9 *                A copy of the License is available at                 *
10 *            http://www.opensource.org/licenses/cpl1.0.txt             *
11 *         (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9)         *
12 *                                                                      *
13 *              Information and Software Systems Research               *
14 *                            AT&T Research                             *
15 *                           Florham Park NJ                            *
16 *                                                                      *
17 *                  David Korn <dgk@research.att.com>                   *
18 *                                                                      *
19 ***********************************************************************/
20 #pragma prototyped
21 
22 #include	<shell.h>
23 #include	<signal.h>
24 #include	"defs.h"
25 #include	"shtable.h"
26 #include	"ulimit.h"
27 #include	"name.h"
28 #include	"version.h"
29 #if KSHELL
30 #   include	"builtins.h"
31 #   include	"jobs.h"
32 #   include	"FEATURE/cmds"
33 #   define	bltin(x)	(b_##x)
34     /* The following is for builtins that do not accept -- options */
35 #   define	Bltin(x)	(B_##x)
36 #else
37 #   define bltin(x)	0
38 #endif
39 
40 #ifndef SH_CMDLIB_DIR
41 #	define SH_CMDLIB_DIR	"/opt/ast/bin"
42 #endif
43 #if defined(SHOPT_CMDLIB_DIR) && !defined(SHOPT_CMDLIB_HDR)
44 #	define SHOPT_CMDLIB_HDR	<cmdlist.h>
45 #endif
46 #define Q(f)		#f	/* libpp cpp workaround -- fixed 2005-04-11 */
47 #define CMDLIST(f)	SH_CMDLIB_DIR "/" Q(f), NV_BLTIN|NV_NOFREE, bltin(f),
48 
49 #undef	basename
50 #undef	dirname
51 
52 /*
53  * The order up through "[" is significant
54  */
55 const struct shtable3 shtab_builtins[] =
56 {
57 	"login",	NV_BLTIN|BLT_ENV|BLT_SPC,	Bltin(login),
58 	"exec",		NV_BLTIN|BLT_ENV|BLT_SPC,	bltin(exec),
59 	"set",		NV_BLTIN|BLT_ENV|BLT_SPC,	bltin(set),
60 	":",		NV_BLTIN|BLT_ENV|BLT_SPC,	bltin(true),
61 	"true",		NV_BLTIN|BLT_ENV,		bltin(true),
62 	"command",	NV_BLTIN|BLT_ENV|BLT_EXIT,	bltin(command),
63 	"cd",		NV_BLTIN|BLT_ENV,		bltin(cd),
64 	"break",	NV_BLTIN|BLT_ENV|BLT_SPC,	bltin(break),
65 	"continue",	NV_BLTIN|BLT_ENV|BLT_SPC,	bltin(break),
66 	"typeset",	NV_BLTIN|BLT_ENV|BLT_SPC|BLT_DCL,bltin(typeset),
67 	"test",		NV_BLTIN|BLT_ENV|NV_NOFREE,	bltin(test),
68 	"[",		NV_BLTIN|BLT_ENV,		bltin(test),
69 	"let",		NV_BLTIN|BLT_ENV,		bltin(let),
70 	"export",	NV_BLTIN|BLT_SPC|BLT_DCL,	bltin(readonly),
71 #if SHOPT_BASH
72 	"local",	NV_BLTIN|BLT_ENV|BLT_SPC|BLT_DCL,bltin(typeset),
73 #endif
74 #if _bin_newgrp || _usr_bin_newgrp
75 	"newgrp",	NV_BLTIN|BLT_ENV|BLT_SPC,	Bltin(login),
76 #endif	/* _bin_newgrp || _usr_bin_newgrp */
77 	".",		NV_BLTIN|BLT_ENV|BLT_SPC,	bltin(dot_cmd),
78 	"alias",	NV_BLTIN|BLT_SPC|BLT_DCL,	bltin(alias),
79 	"hash",		NV_BLTIN|BLT_SPC|BLT_DCL,	bltin(alias),
80 	"exit",		NV_BLTIN|BLT_ENV|BLT_SPC,	bltin(return),
81 	"eval",		NV_BLTIN|BLT_ENV|BLT_SPC|BLT_EXIT,bltin(eval),
82 	"fc",		NV_BLTIN|BLT_ENV|BLT_EXIT,	bltin(hist),
83 	"hist",		NV_BLTIN|BLT_ENV|BLT_EXIT,	bltin(hist),
84 	"readonly",	NV_BLTIN|BLT_ENV|BLT_SPC|BLT_DCL,bltin(readonly),
85 	"return",	NV_BLTIN|BLT_ENV|BLT_SPC,	bltin(return),
86 	"shift",	NV_BLTIN|BLT_ENV|BLT_SPC,	bltin(shift),
87 	"trap",		NV_BLTIN|BLT_ENV|BLT_SPC,	bltin(trap),
88 	"unalias",	NV_BLTIN|BLT_ENV|BLT_SPC,	bltin(unalias),
89 	"unset",	NV_BLTIN|BLT_ENV|BLT_SPC,	bltin(unset),
90 	"builtin",	NV_BLTIN,			bltin(builtin),
91 #if SHOPT_ECHOPRINT
92 	"echo",		NV_BLTIN|BLT_ENV,		bltin(print),
93 #else
94 	"echo",		NV_BLTIN|BLT_ENV,		Bltin(echo),
95 #endif /* SHOPT_ECHOPRINT */
96 #ifdef JOBS
97 #   ifdef SIGTSTP
98 	"bg",		NV_BLTIN|BLT_ENV,		bltin(bg),
99 	"fg",		NV_BLTIN|BLT_ENV|BLT_EXIT,	bltin(bg),
100 	"disown",	NV_BLTIN|BLT_ENV,		bltin(bg),
101 	"kill",		NV_BLTIN|BLT_ENV|NV_NOFREE,	bltin(kill),
102 #   else
103 	"/bin/kill",	NV_BLTIN|BLT_ENV|NV_NOFREE,	bltin(kill),
104 #   endif	/* SIGTSTP */
105 	"jobs",		NV_BLTIN|BLT_ENV,		bltin(jobs),
106 #endif	/* JOBS */
107 	"false",	NV_BLTIN|BLT_ENV,		bltin(false),
108 SH_CMDLIB_DIR "/getconf",NV_BLTIN|BLT_ENV,		bltin(getconf),
109 	"getopts",	NV_BLTIN|BLT_ENV,		bltin(getopts),
110 	"print",	NV_BLTIN|BLT_ENV,		bltin(print),
111 	"printf",	NV_BLTIN|NV_NOFREE,		bltin(printf),
112 	"pwd",		NV_BLTIN|NV_NOFREE,		bltin(pwd),
113 	"read",		NV_BLTIN|BLT_ENV,		bltin(read),
114 	"sleep",	NV_BLTIN|NV_NOFREE,		bltin(sleep),
115 	"alarm",	NV_BLTIN,			bltin(alarm),
116 	"ulimit",	NV_BLTIN|BLT_ENV,		bltin(ulimit),
117 	"umask",	NV_BLTIN|BLT_ENV,		bltin(umask),
118 #ifdef _cmd_universe
119 	"universe",	NV_BLTIN|BLT_ENV,		bltin(universe),
120 #endif /* _cmd_universe */
121 #if SHOPT_FS_3D
122 	"vpath",	NV_BLTIN|BLT_ENV,		bltin(vpath),
123 	"vmap",		NV_BLTIN|BLT_ENV,		bltin(vpath),
124 #endif /* SHOPT_FS_3D */
125 	"wait",		NV_BLTIN|BLT_ENV|BLT_EXIT,	bltin(wait),
126 	"type",		NV_BLTIN|BLT_ENV,		bltin(whence),
127 	"whence",	NV_BLTIN|BLT_ENV,		bltin(whence),
128 #ifdef SHOPT_CMDLIB_HDR
129 #include SHOPT_CMDLIB_HDR
130 #else
131 	CMDLIST(basename)
132 	CMDLIST(chmod)
133 	CMDLIST(dirname)
134 	CMDLIST(head)
135 	CMDLIST(mkdir)
136 	CMDLIST(logname)
137 	CMDLIST(cat)
138 	CMDLIST(cmp)
139 	CMDLIST(cut)
140 	CMDLIST(uname)
141 	CMDLIST(wc)
142 	CMDLIST(sync)
143 #endif
144 	"",		0, 0
145 };
146 
147 
148 const char sh_set[] =
149 "[a?Set the export attribute for each variable whose name does not "
150 	"contain a \b.\b that you assign a value in the current shell "
151 	"environment.]"
152 "[b?The shell writes a message to standard error as soon it detects that "
153 	"a background job completes rather than waiting until the next prompt.]"
154 "[e?A simple command that has an non-zero exit status will cause the shell "
155 	"to exit unless the simple command is:]{"
156 	"[++?contained in an \b&&\b or \b||\b list.]"
157 	"[++?the command immediately following \bif\b, \bwhile\b, or \buntil\b.]"
158 	"[++?contained in the pipeline following \b!\b.]"
159 "}"
160 "[f?Pathname expansion is disabled.]"
161 "[h?Obsolete.  Causes each command whose name has the syntax of an "
162 	"alias to become a tracked aliase when it is first encountered.]"
163 "[k?This is obsolete.  All arguments of the form \aname\a\b=\b\avalue\a "
164 	"are removed and placed in the variable assignment list for "
165 	"the command.  Ordinarily, variable assignments must precede "
166 	"command arguments.]"
167 "[m?When enabled, the shell runs background jobs in a separate process "
168 	"group and displays a line upon completion.  This mode is enabled "
169 	"by default for interactive shells on systems that support job "
170 	"control.]"
171 "[n?The shell reads commands and checks for syntax errors, but does "
172 	"not execute the command.  Usually specified on command invocation.]"
173 "[o]:?[option?If \aoption\a is not specified, the list of options and "
174 	"their current settings will be written to standard output.  When "
175 	"invoked with a \b+\b the options will be written in a format "
176 	"that can be reinput to the shell to restore the settings. "
177 	"This option can be repeated to enable/disable multiple options. "
178 	"The value of \aoption\a must be one of the following:]{"
179 		"[+allexport?Equivalent to \b-a\b.]"
180 		"[+bgnice?Runs background jobs at lower priorities.]"
181 		"[+braceexpand?Equivalent to \b-B\b.] "
182 		"[+emacs?Enables/disables \bemacs\b editing mode.]"
183 		"[+errexit?Equivalent to \b-e\b.]"
184 		"[+globstar?Equivalent to \b-G\b.]"
185 		"[+gmacs?Enables/disables \bgmacs\b editing mode.  \bgmacs\b "
186 			"editing mode is the same as \bemacs\b editing mode "
187 			"except for the handling of \b^T\b.]"
188 #if SHOPT_BASH
189 		"[+hashall?Equivalent to \b-h\b and \b-o trackall\b. Available "
190 		"in bash compatibility mode only.]"
191 		"[+history?Enable command history. Available in bash "
192 		"compatibility mode only. On by default in interactive "
193 		"shells.]"
194 #endif
195 #if SHOPT_HISTEXPAND
196 		"[+histexpand?Equivalent to \b-H\b.]"
197 #endif
198 		"[+ignoreeof?Prevents an interactive shell from exiting on "
199 			"reading an end-of-file.]"
200 		"[+keyword?Equivalent to \b-k\b.]"
201 		"[+markdirs?A trailing \b/\b is appended to directories "
202 			"resulting from pathname expansion.]"
203 		"[+monitor?Equivalent to \b-m\b.]"
204 		"[+multiline?Use multiple lines when editing lines that are "
205 			"longer than the window width.]"
206 		"[+noclobber?Equivalent to \b-C\b.]"
207 		"[+noexec?Equivalent to \b-n\b.]"
208 		"[+noglob?Equivalent to \b-f\b.]"
209 		"[+nolog?This has no effect.  It is provided for backward "
210 			"compatibility.]"
211 		"[+notify?Equivalent to \b-b\b.]"
212 		"[+nounset?Equivalent to \b-u\b.]"
213 #if SHOPT_BASH
214 		"[+onecmd?Equivalent to \b-t\b. Available in bash compatibility "
215 		"mode only.]"
216 		"[+physical?Equivalent to \b-P\b. Available in bash "
217 		"compatibility mode only.]"
218 		"[+posix?Turn on POSIX compatibility. Available in bash "
219 		"compatibility mode only. Bash in POSIX mode is not the "
220 		"same as ksh.]"
221 #endif
222 		"[+pipefail?A pipeline will not complete until all components "
223 			"of the pipeline have completed, and the exit status "
224 			"of the pipeline will be the value of the last "
225 			"command to exit with non-zero exit status, or will "
226 			"be zero if all commands return zero exit status.]"
227 		"[+privileged?Equivalent to \b-p\b.]"
228 		"[+showme?Simple commands preceded by a \b;\b will be traced "
229 			"as if \b-x\b were enabled but not executed.]"
230 		"[+trackall?Equivalent to \b-h\b.]"
231 		"[+verbose?Equivalent to \b-v\b.]"
232 		"[+vi?Enables/disables \bvi\b editing mode.]"
233 		"[+viraw?Does not use canonical input mode when using \bvi\b "
234 			"edit mode.]"
235 		"[+xtrace?Equivalent to \b-x\b.]"
236 "}"
237 "[p?Privileged mode.  Disabling \b-p\b sets the effective user id to the "
238 	"real user id, and the effective group id to the real group id.  "
239 	"Enabling \b-p\b restores the effective user and group ids to their "
240 	"values when the shell was invoked.  The \b-p\b option is on "
241 	"whenever the real and effective user id is not equal or the "
242 	"real and effective group id is not equal.  User profiles are "
243 	"not processed when \b-p\b is enabled.]"
244 "[r?restricted.  Enables restricted shell.  This option cannot be unset once "
245 	"enabled.]"
246 "[t?Obsolete.  The shell reads one command and then exits.]"
247 "[u?If enabled, the shell displays an error message when it tries to expand "
248 	"a variable that is unset.]"
249 "[v?Verbose.  The shell displays its input onto standard error as it "
250 	"reads it.]"
251 "[x?Execution trace.  The shell will display each command after all "
252 	"expansion and before execution preceded by the expanded value "
253 	"of the \bPS4\b parameter.]"
254 #if SHOPT_BASH
255 	"\fbash1\f"
256 #endif
257 #if SHOPT_BRACEPAT
258 "[B?Enable {...} group expansion. On by default.]"
259 #endif
260 "[C?Prevents existing regular files from being overwritten using the \b>\b "
261 	"redirection operator.  The \b>|\b redirection overrides this "
262 	"\bnoclobber\b option.]"
263 "[G?Causes \b**\b by itself to also match all sub-directories during pathname "
264 	"expansion.]"
265 #if SHOPT_HISTEXPAND
266    "[H?Enable \b!\b-style history expansion similar to \bcsh\b.]"
267 #endif
268 ;
269 
270 const char sh_optbreak[] =
271 "[-1c?\n@(#)$Id: break (AT&T Research) 1999-04-07 $\n]"
272 USAGE_LICENSE
273 "[+NAME?break - break out of loop ]"
274 "[+DESCRIPTION?\bbreak\b is a shell special built-in that exits the "
275 	"smallest enclosing \bfor\b, \bselect\b, \bwhile\b, or \buntil\b loop, "
276 	"or the \an\a-th enclosing loop if \an\a is specified.  "
277 	"Execution continues at the command following the loop(s).]"
278 "[+?If \an\a is given, it must be a positive integer >= 1. If \an\a "
279 	"is larger than the number of enclosing loops, the last enclosing "
280 	"loop will be exited.]"
281 "\n"
282 "\n[n]\n"
283 "\n"
284 "[+EXIT STATUS?0]"
285 "[+SEE ALSO?\bcontinue\b(1), \breturn\b(1)]"
286 ;
287 
288 const char sh_optcont[] =
289 "[-1c?\n@(#)$Id: continue (AT&T Research) 1999-04-07 $\n]"
290 USAGE_LICENSE
291 "[+NAME?continue - continue execution at top of the loop]"
292 "[+DESCRIPTION?\bcontinue\b is a shell special built-in that continues "
293 	"execution at the top of smallest enclosing enclosing \bfor\b, "
294 	"\bselect\b, \bwhile\b, or \buntil\b loop, if any; or the top of "
295 	"the \an\a-th enclosing loop if \an\a is specified.]"
296 "[+?If \an\a is given, it must be a positive integer >= 1. If \an\a "
297 	"is larger than the number of enclosing loops, the last enclosing "
298 	" loop will be used.]"
299 
300 "\n"
301 "\n[n]\n"
302 "\n"
303 "[+SEE ALSO?\bbreak\b(1)]"
304 ;
305 
306 const char sh_optalarm[]	= "r [varname seconds]";
307 const char sh_optalias[] =
308 "[-1c?\n@(#)$Id: alias (AT&T Research) 1999-07-07 $\n]"
309 USAGE_LICENSE
310 "[+NAME?alias - define or display aliases]"
311 "[+DESCRIPTION?\balias\b creates or redefines alias definitions "
312 	"or writes the existing alias definitions to standard output.  "
313 	"An alias definitions provides a string value that will replace "
314 	"a command name when the command is read.  Alias names can "
315 	"contain any printable character which is not special to the shell.  "
316 	"If an alias value ends in a space or tab, then the word "
317 	"following the command name the alias replaces is also checked "
318 	"to see whether it is an alias.]"
319 "[+?If no \aname\as are specified then the names and values of all "
320 	"aliases are written to standard output.  Otherwise, for "
321 	"each \aname\a that is specified, and \b=\b\avalue\a  is not "
322 	"specified, the current value of the alias corresponding to "
323 	"\aname\a is written to standard output.  If \b=\b\avalue\a is "
324 	"specified, the alias \aname\a will be created or redefined.]"
325 "[+?\balias\b is built-in to the shell as a declaration command so that "
326 	"field splitting and pathname expansion are not performed on "
327 	"the arguments.  Tilde expansion occurs on \avalue\a.  An alias "
328 	"definition only affects scripts read by the current shell "
329 	"environment.  It does not effect scripts run by this shell.]"
330 "[p?Causes the output to be in the form of alias commands that can be used "
331 	"as input to the shell to recreate the current aliases.]"
332 "[t?Used for tracked aliases.  These are aliases that connect a "
333 	"command name to the pathname of the command and are reset "
334 	"when the \bPATH\b variable is unset.  The tracked aliases feature is "
335 	"now obsolete.]"
336 "[x?Ignored, this option is obsolete.]"
337 "\n"
338 "\n[name[=value]...]\n"
339 "\n"
340 "[+EXIT STATUS?]{"
341         "[+0?Successful completion.]"
342         "[+>0?One or more \aname\a operands did not have an alias "
343 		"definition, or an error occurred.]"
344 "}"
345 
346 "[+SEE ALSO?\bsh\b(1), \bunalias\b(1)]"
347 ;
348 
349 const char sh_optbuiltin[] =
350 "[-1c?\n@(#)$Id: builtin (AT&T Research) 1999-07-10 $\n]"
351 USAGE_LICENSE
352 "[+NAME?builtin - add, delete, or display shell built-ins]"
353 "[+DESCRIPTION?\bbuiltin\b can be used to add, delete, or display "
354     "built-in commands in the current shell environment. A built-in command "
355     "executes in the current shell process and can have side effects in the "
356     "current shell. On most systems, the invocation time for built-in "
357     "commands is one or two orders of magnitude less than commands that "
358     "create a separate process.]"
359 "[+?For each \apathname\a specified, the basename of the pathname "
360     "determines the name of the built-in. For each basename, the shell looks "
361     "for a C level function in the current shell whose name is determined by "
362     "prepending \bb_\b to the built-in name. If \apathname\a contains a "
363     "\b/\b, then the built-in is bound to this pathname. A built-in bound to "
364     "a pathname will only be executed if \apathname\a is the first "
365     "executable found during a path search. Otherwise, built-ins are found "
366     "prior to performing the path search.]"
367 "[+?If no \apathname\a operands are specified, then \bbuiltin\b displays "
368     "the current list of built-ins, or just the special built-ins if \b-s\b "
369     "is specified, on standard output. The full pathname for built-ins that "
370     "are bound to pathnames are displayed.]"
371 "[+?Libraries containing built-ins can be specified with the \b-f\b "
372     "option. If the library contains a function named \blib_init\b(), this "
373     "function will be invoked with argument \b0\b when the library is "
374     "loaded. The \blib_init\b() function can load built-ins by invoking an "
375     "appropriate C level function. In this case there is no restriction on "
376     "the C level function name.]"
377 "[+?The C level function will be invoked with three arguments. The first "
378     "two are the same as \bmain\b() and the third one is a pointer.]"
379 "[+?\bbuiltin\b cannot be invoked from a restricted shell.]"
380 "[d?Deletes each of the specified built-ins. Special built-ins cannot be "
381     "deleted.]"
382 "[f]:[lib?On systems with dynamic linking, \alib\a names a shared "
383     "library to load and search for built-ins. Libraries are search for in "
384     "\b$PATH\b and system dependent library directories. The system "
385     "dependent shared library prefix and/or suffix may be omitted. Once a "
386     "library is loaded, its symbols become available for the current and "
387     "subsequent invocations of \bbuiltin\b. Multiple libraries can be "
388     "specified with separate invocations of \bbuiltin\b. Libraries are "
389     "searched in the reverse order in which they are specified.]"
390 "[s?Display only the special built-ins.]"
391 "\n"
392 "\n[pathname ...]\n"
393 "\n"
394 "[+EXIT STATUS?]{"
395 	"[+0?All \apathname\a operands and \b-f\b options processed "
396 	"successfully.]"
397 	"[+>0?An error occurred.]"
398 "}"
399 "[+SEE ALSO?\bwhence\b(1)]"
400 ;
401 
402 const char sh_optcd[] =
403 "[-1c?\n@(#)$Id: cd (AT&T Research) 1999-06-05 $\n]"
404 USAGE_LICENSE
405 "[+NAME?cd - change working directory ]"
406 "[+DESCRIPTION?\bcd\b changes the current working directory of the "
407 	"current shell environment.]"
408 "[+?In the first form with one operand, if \adirectory\a begins with "
409 	"\b/\b, or if the first component is \b.\b or \b..\b, the "
410 	"directory will be changed to this directory.  If directory is \b-\b, "
411 	"the directory will be changed to the last directory visited.  "
412 	"Otherwise, if the \bCDPATH\b environment variable is set, \bcd\b "
413 	"searches for \adirectory\a relative to each directory named in "
414 	"the colon separated list of directories defined by \bCDPATH\b.  "
415 	"If \bCDPATH\b not set, \bcd\b changes to the directory specified "
416 	"by \adirectory\a.]"
417 "[+?In the second form, the first occurrence of the string \aold\a "
418 	"contained in the pathname of the present working directory "
419 	"is replaced by the string \anew\a and the resulting string "
420 	"is used as the directory to which to change.]"
421 "[+?When invoked without operands and when the \bHOME\b environment "
422 	"variable is set to a nonempty value,  the directory named by "
423 	"the \bHOME\b environment variable will be used.  If \bHOME\b "
424 	"is empty or unset, \bcd\b will fail.]"
425 "[+?When \bcd\b is successful, the \bPWD\b environment variable will be set "
426 	"to the name of an absolute pathname that does not contain any "
427 	"\b..\b components corresponding to the new directory.  The "
428 	"environment variable \bOLDPWD\b will be set to the previous "
429 	"value of \bPWD\b.  If the new directory is found by searching "
430 	"the directories named by \bCDPATH\b, or if \adirectory\a is \b-\b, "
431 	"or if the two operand form is used, the new value of \bPWD\b will be "
432 	"written to standard output.]"
433 "[+?If both \b-L\b and \b-P\b are specified, the last one specified will "
434 	"be used.  If neither \b-P\b or \b-L\b is specified then the "
435 	"behavior will be determined by the \bgetconf\b parameter "
436 	"\bPATH_RESOLVE\b.  If \bPATH_RESOLVE\b is \bphysical\b, "
437 	"then the behavior will be as if \b-P\b were specified.  Otherwise, "
438 	"the behavior will be as if  \b-L\b were specified.]"
439 "[L?Handle each pathname component \b..\b in a logical fashion by moving "
440 	"up one level by name in the present working directory.]"
441 "[P?The present working directory is first converted to an absolute pathname "
442 	"that does not contain symbolic link components and symbolic name "
443 	"components are expanded in the resulting directory name.]"
444 "\n"
445 "\n[directory]\n"
446 "old new\n"
447 "\n"
448 "[+EXIT STATUS?]{"
449 	"[+0?Directory successfully changed.]"
450 	"[+>0?An error occurred.]"
451 "}"
452 "[+SEE ALSO?\bpwd\b(1), \bgetconf\b(1)]"
453 ;
454 
455 const char sh_optcommand[] =
456 "[-1c?\n@(#)$Id: command (AT&T Research) 2003-08-01 $\n]"
457 USAGE_LICENSE
458 "[+NAME?command - execute a simple command]"
459 "[+DESCRIPTION?Without \b-v\b or \b-V\b,  \bcommand\b executes \acommand\a "
460 	"with arguments given by \aarg\a, suppressing the shell function lookup "
461 	"that normally occurs.  In addition, if \acommand\a is a special "
462 	"built-in command, then the special properties are removed so that "
463 	"failures will not cause the script that executes it to terminate.]"
464 "[+?With the \b-v\b or \b-V\b options, \bcommand\b is equivalent to the "
465 	"\bwhence\b(1) command.]"
466 "[p?Causes a default path to be searched rather than the one defined by the "
467 	"value of \bPATH\b.]"
468 "[v?Equivalent to \bwhence\b \acommand\a [\aarg\a ...]].]"
469 "[x?If \acommand\a fails because there are too many \aarg\as, it will be "
470 	"invoked multiple times with a subset of the arguments on each "
471 	"invocation.  Arguments that occur prior to the first word that expand "
472 	"to multiple arguments and arguments that occur after the last word "
473 	"that expands to multiple arguments will be passed on each invocation. "
474 	"The exit status will be the maximum invocation exit status.]"
475 "[V?Equivalent to \bwhence \b-v\b \acommand\a [\aarg\a ...]].]"
476 "\n"
477 "\n[command [arg ...]]\n"
478 "\n"
479 "[+EXIT STATUS?If \acommand\a is invoked, the exit status of \bcommand\b "
480 	"will be that of \acommand\a.  Otherwise, it will be one of "
481 	"the following:]{"
482 	"[+0?\bcommand\b completed successfully.]"
483 	"[+>0?\b-v\b or \b-V\b has been specified and an error occurred.]"
484 	"[+126?\acommand\a was found but could not be invoked.]"
485 	"[+127?\acommand\a could not be found.]"
486 "}"
487 
488 "[+SEE ALSO?\bwhence\b(1), \bgetconf\b(1)]"
489 ;
490 
491 const char sh_optdot[]	 =
492 "[-1c?@(#)$Id: \b.\b (AT&T Research) 2000-04-02 $\n]"
493 USAGE_LICENSE
494 "[+NAME?\b.\b - execute commands in the current environment]"
495 "[+DESCRIPTION?\b.\b is a special built-in command that executes commands "
496 	"from a function or a file in the current environment.]"
497 "[+?If \aname\a refers to a function defined with the \bfunction\b \aname\a "
498 	"syntax, the function executes in the current environment as "
499 	"if it had been defined with the \aname\a\b()\b syntax so that "
500 	"there is no scoping.  Otherwise, commands from the file defined "
501 	"by \aname\a are executed in the current environment.  Note that "
502 	"the complete script is read before it begins to execute so that "
503 	"any aliases defined in this script will not take effect until "
504 	"the script completes execution.]"
505 "[+?When \aname\a refers to a file, the \bPATH\b variable is searched "
506 	"for the file containing commands.  In this case execute permission "
507 	"is not required for \aname\a.]"
508 "[+?If any \aarg\as are specified, these become the positional parameters "
509 	"for the duration of the function or script and are restored "
510 	"upon completion.]"
511 "\n"
512 "\n name [arg ...]\n"
513 "\n"
514 "[+EXIT STATUS?If \aname\a is found, then the exit status is that "
515 	"of the last command executed.  Otherwise, since this is a special "
516 	"built-in, an error will cause a non-interactive shell to exit with "
517 	"a non-zero exit status.  An interactive shell returns a non-zero exit "
518 	"status to indicate an error.]"
519 
520 "[+SEE ALSO?\bcommand\b(1), \bksh\b(1)]"
521 ;
522 
523 #ifndef ECHOPRINT
524     const char sh_optecho[]	= " [-n] [arg...]";
525 #endif /* !ECHOPRINT */
526 
527 const char sh_opteval[] =
528 "[-1c?\n@(#)$Id: eval (AT&T Research) 1999-07-07 $\n]"
529 USAGE_LICENSE
530 "[+NAME?eval - create a shell command and process it]"
531 "[+DESCRIPTION?\beval\b is a shell special built-in command that constructs "
532 	"a command by concatenating the \aarg\as together, separating each "
533 	"with a space.  The resulting string is then taken as input to "
534 	"the shell and evaluated in the current environment.  Note that "
535 	"command words are expanded twice; once to construct \aarg\a, and "
536 	"again when the shell executes the constructed command.]"
537 "[+?It is not an error if \aarg\a is not given.]"
538 "\n"
539 "\n[arg...]\n"
540 "\n"
541 "[+EXIT STATUS?If \aarg\a is not specified, the exit status is \b0\b.  "
542 	"Otherwise, it is the exit status of the command defined by the "
543 	"\aarg\a operands.]"
544 "[+SEE ALSO?\bexec\b(1), \btrap\b(1), \b.\b(1)]"
545 ;
546 
547 const char sh_optexec[] =
548 "[-1c?\n@(#)$Id: exec (AT&T Research) 1999-07-10 $\n]"
549 USAGE_LICENSE
550 "[+NAME?exec - execute command, open/close and duplicate file descriptors]"
551 "[+DESCRIPTION?\bexec\b is a special built-in command that can be used to "
552 	"manipulate file descriptors or to replace the current shell "
553 	"with a new command.]"
554 "[+?If \acommand\a is specified, then the current shell process will be "
555 	"replaced by \acommand\a rather than running \acommand\a and waiting "
556 	"for it to complete.  Note that there is no need to use "
557 	"\bexec\b to enhance performance since the shell implicitly "
558 	"uses the exec mechanism internally whenever possible.]"
559 "[+?If no operands are specified, \bexec\b can be used to open or "
560 	"close files, or to manipulate file descriptors from \b0\b to "
561 	"\b9\b in the current shell environment using the standard "
562 	"redirection mechanism available with all commands.  The "
563 	"close-on-exec flags will be set on file descriptor numbers "
564 	"greater than \b2\b that are opened this way so that they "
565 	"will be closed when another program is invoked.]"
566 "[+?Because \bexec\b is a special command, any failure will cause the "
567 	"script that invokes it to exit.  This can be prevented by "
568 	"invoking \bexec\b from the \bcommand\b utility.]"
569 "[+?\bexec\b cannot be invoked from a restricted shell to create "
570 	"files or to open a file for writing or appending.]"
571 "[c?Clear all environment variables before executions except variable "
572 	"assignments that are part of the current \bexec\b command.]"
573 "[a]:[name?\bargv[0]]\b will be set to \aname\a for \acommand\a]"
574 "\n"
575 "\n[command [arg ...]]\n"
576 "\n"
577 "[+EXIT STATUS?If \acommand\a is specified, \bexec\b does not return.  "
578 	"Otherwise, the exit status is one of the following:]{"
579 	"[+0?All I/O redirections were successful.]"
580 	"[+>0?An error occurred.]"
581 "}"
582 "[+SEE ALSO?\bcommand\b(1), \beval\b(1)]"
583 ;
584 
585 
586 const char sh_optexit[] =
587 "[-1c?\n@(#)$Id: exit (AT&T Research) 1999-07-07 $\n]"
588 USAGE_LICENSE
589 "[+NAME?exit - exit the current shell]"
590 "[+DESCRIPTION?\bexit\b is shell special built-in that causes the "
591 	"shell that invokes it to exit.  Before exiting the shell, if the "
592 	"\bEXIT\b trap is set it will be invoked.]"
593 "[+?If \an\a is given, it will be used to set the exit status.]"
594 "\n"
595 "\n[n]\n"
596 "\n"
597 "[+EXIT STATUS?If \an\a is specified, the exit status is the least significant "
598 	"eight bits of the value of \an\a.  Otherwise, the exit status is the "
599 	"exit status of preceding command.  When invoked inside a trap, the "
600 	"preceding command means the command that invoked the trap.]"
601 "[+SEE ALSO?\bbreak\b(1), \breturn\b(1)]"
602 ;
603 
604 const char sh_optexport[] =
605 "[-1c?\n@(#)$Id: export (AT&T Research) 1999-07-07 $\n]"
606 USAGE_LICENSE
607 "[+NAME?export - set export attribute on variables]"
608 "[+DESCRIPTION?\bexport\b sets the export attribute on each of "
609 	"the variables specified by \aname\a which causes them "
610 	"to be in the environment of subsequently executed commands.  "
611 	"If \b=\b\avalue\a is specified, the variable \aname\a is "
612 	"set to \avalue\a.]"
613 "[+?If no \aname\as are specified then the names and values of all "
614 	"exported variables are written to standard output.]"
615 "[+?\bexport\b is built-in to the shell as a declaration command so that "
616 	"field splitting and pathname expansion are not performed on "
617 	"the arguments.  Tilde expansion occurs on \avalue\a.]"
618 "[p?Causes the output to be in the form of \bexport\b commands that can be "
619 	"used as input to the shell to recreate the current exports.]"
620 "\n"
621 "\n[name[=value]...]\n"
622 "\n"
623 "[+EXIT STATUS?]{"
624         "[+0?Successful completion.]"
625         "[+>0?An error occurred.]"
626 "}"
627 
628 "[+SEE ALSO?\bsh\b(1), \btypeset\b(1)]"
629 ;
630 
631 const char sh_optgetopts[] =
632 ":[-1c?\n@(#)$Id: getopts (AT&T Research) 2005-01-01 $\n]"
633 "[-author?Glenn Fowler <gsf@research.att.com>]"
634 USAGE_LICENSE
635 "[+NAME?\f?\f - parse utility options]"
636 "[+DESCRIPTION?The \bgetopts\b utility can be used to retrieve options and "
637   "arguments from a list of arguments given by \aargs\a or the positional "
638   "parameters if \aargs\a is omitted.  It can also generate usage messages "
639   "and a man page for the command based on the information in \aoptstring\a.]"
640 "[+?Each time it is invoked, the \bgetopts\b utility places the value "
641   "of the next option in the shell variable specified by the \aname\a "
642   "operand and the index of the next argument to be processed in the "
643   "shell variable \bOPTIND\b.  When the shell is invoked \bOPTIND\b "
644   "is initialized to \b1\b.  When an option requires or permits an option "
645   "argument, \bgetopts\b places the option argument in the shell "
646   "variable \bOPTARG\b. Otherwise \bOPTARG\b is set to \b1\b when the "
647   "option is set and \b0\b when the option is unset.]"
648 "[+?The \aoptstring\a string consists of alpha-numeric characters, "
649   "the special characters +, -, ?, :, and <space>, or character groups "
650   "enclosed in [...]].  Character groups may be nested in {...}. "
651   "Outside of a [...]] group, a single new-line followed by zero or "
652   "more blanks is ignored.  One or more blank lines separate the "
653   "options from the command argument synopsis.]"
654 "[+?Each [...]] group consists of an optional label, "
655   "optional attributes separated by :, and an "
656   "optional description string following ?.  The characters from the ? "
657   "to the end of the next ]] are ignored for option parsing and short "
658   "usage messages.  They are used for generating verbose help or man pages. "
659   "The : character may not appear in the label. "
660   "The ? character must be specified as ?? in the label and the ]] character "
661   "must be specified as ]]]] in the description string. "
662   "Text between two \\b (backspace) characters indicates "
663   "that the text should be emboldened when displayed. "
664   "Text between two \\a (bell) characters indicates that the text should "
665   "be emphasised or italicized when displayed. "
666   "Text between two \\v (vertical tab) characters indicates "
667   "that the text should displayed in a fixed width font. "
668   "Text between two \\f (formfeed) characters will be replaced by the "
669     "output from the shell function whose name is that of the enclosed text.]"
670 "[+?All output from this interface is written to the standard error.]"
671 "[+?There are several group types:]{"
672   "[+1.?A group of the form "
673     "[-[\aversion\a]][\aflag\a[\anumber\a]]]]...[?\atext\a]]]] "
674     "appearing as the first group enables the extended interface. \aversion\a "
675     "specifies the interface version, currently \b1\b. The latest version is "
676     "assumed if \aversion\a is omitted. Future enhancements "
677     "may increment \aversion\a, but all versions will be supported. \atext\a "
678     "typically specifies an SCCS or CVS identification string. Zero or more "
679     "\aflags\a with optional \anumber\a values may be specified to control "
680     "option parsing. "
681     "The flags are:]{"
682       "[+c?Cache this \aoptstring\a for multiple passes. Used to optimize "
683 	"builtins that may be called many times within the same process.]"
684       "[+i?Ignore this \aoptstring\a when generating help. Used when "
685 	"combining \aoptstring\a values from multiple passes.]"
686       "[+l?Display only \alongname\a options in help messages.]"
687       "[+o?The \b-\b option character prefix is optional (supports "
688         "obsolete \bps\b(1) option syntax.)]"
689       "[+p?\anumber\a specifies the number of \b-\b characters that must "
690 	"prefix long option names. The default is \b2\b; \b0\b, \b1\b or "
691 	"\b2\b are accepted (e.g., \bp0\b for \bdd\b(1) and \bp1\b for "
692 	"\bfind\b(1).)]"
693       "[+s?\anumber\a specifies the \b--??man\b section number, "
694         "\b1\b by default.]"
695   "}"
696   "[+2.?An option specification of the form "
697     "[\aoption\a[!]][=\anumber\a]][:\alongname\a]][?\atext\a]]]]. In this "
698     "case the first field is the option character; this is the value returned "
699     "in the \aname\a operand when the option is matched.  If there is no "
700     "option character then a two or more digit number should be specified. "
701     "This number will be returned as the value of the \aname\a operand if the "
702     "long option is matched. If \aoption\a is followed by \b!\b then the option "
703     "character sense is the inverse of the longname sense. For options that do "
704     "not take values \bOPTARG\b will be set to \b0\b for \b!\b inverted option "
705     "characters and \b1\b otherwise. =\anumber\a optionally specifies a number to "
706     "be returned in the \aname\a operand instead of the option character. A "
707     "longname is specified by \b--\b\alongname\a and is matched by the shortest "
708     "non-ambiguous prefix of all long options. * in the \alongname\a field "
709     "indicates that only characters up to that point need to match, provided "
710     "any additional characters match exactly. The enclosing [ and ]] can be "
711     "omitted for an option that does not have a longname or descriptive text.]"
712   "[+3.?An option argument specification. "
713     "Options that take arguments can be followed by : (string value) or # "
714     "(numeric value) and an option argument specification.  An option argument "
715     "specification consists of the option argument name as field 1. "
716     "The remaining \b:\b separated fields are a type name and zero or more of "
717     "the special attribute words \blistof\b, \boneof\b, and \bignorecase\b. "
718     "A default option value may be specified in the final field as "
719     "\b:=\b\adefault\a. The option argument specification may be followed "
720     "by a list of option value descriptions enclosed in braces. "
721     "A long option that takes an argument is specified as "
722     "\b--\b\alongname\a=\avalue\a. If the : or # is followed by ? then the "
723     "option argument is optional. If only the option character form is "
724     "specified then the optional argument value is not set if the next "
725     "argument starts with - or +.]"
726   "[+4.?A option value description.]"
727   "[+5.?A argument specification. A list of valid option argument values "
728     "can be specified by enclosing them inside a {...} following "
729     "the option argument specification.  Each of the permitted "
730     "values can be specified with a [...]] containing the "
731     "value followed by a description.]"
732   "[+6.?A group of the form [+\\n...]] will display the characters "
733     "representing ... in fixed with font without adding line breaks.]"
734   "[+7.?A group of the form [+\aname\a?\atext\a]] specifies a section "
735     "\aname\a with descriptive \atext\a. If \aname\a is omitted then "
736     "\atext\a is placed in a new paragraph.]"
737   "[+8.?A group of the form [-\aname\a?\atext\a]] specifies entries "
738     "for the \bIMPLEMENTATION\b section.]"
739 "}"
740 "[+?If the leading character of \aoptstring\a is +, then arguments "
741   "beginning with + will also be considered options.]"
742 "[+?A leading : character or a : following a leading + in \aoptstring\a "
743   "affects the way errors are handled.  If an option character or longname "
744   "argument not specified in \aoptstring\a is encountered when processing "
745   "options, the shell variable whose name is \aname\a will be set to the ? "
746   "character.  The shell variable \bOPTARG\b will be set to "
747   "the character found.  If an option argument is missing or has an invalid "
748   "value, then \aname\a will be set to the : character and the shell variable "
749   "\bOPTARG\b will be set to the option character found. "
750   "Without the leading :, \aname\a will be set to the ? character, \bOPTARG\b "
751   "will be unset, and an error message will be written to standard error "
752   "when errors are encountered.]"
753 "[+?The end of options occurs when:]{"
754 	"[+1.?The special argument \b--\b is encountered.]"
755 	"[+2.?An argument that does not begin with a \b-\b is encountered.]"
756 	"[+3.?A help argument is specified.]"
757 	"[+4.?An error is encountered.]"
758 "}"
759 "[+?If \bOPTIND\b is set to the value \b1\b, a new set of arguments "
760   "can be used.]"
761 "[+?\bgetopts\b can also be used to generate help messages containing command "
762   "usage and detailed descriptions.  Specify \aargs\a as:]"
763 "{ "
764 	"[+-???To generate a usage synopsis.]"
765 	"[+--?????To generate a verbose usage message.]"
766 	"[+--????man?To generate a formatted man page.]"
767 	"[+--????api?To generate an easy to parse usage message.]"
768 	"[+--????html?To generate a man page in \bhtml\b format.]"
769 	"[+--????nroff?To generate a man page in \bnroff\b format.]"
770 	"[+--????usage?List the current \aoptstring\a.]"
771 	"[+--??????\aname\a?List \bversion=\b\an\a, \an\a>0, "
772 	  "if the option \aname\a is recognized by \bgetopts\b.]"
773 "}"
774 "[+?When the end of options is encountered, \bgetopts\b exits with a "
775   "non-zero return value and the variable \bOPTIND\b is set to the "
776   "index of the first non-option argument.]"
777 "a:[name?Use \aname\a instead of the command name in usage messages.]"
778 "\n"
779 "\nopstring name [args...]\n"
780 "\n"
781 "[+EXIT STATUS]{"
782 	"[+0?An option specified was found.]"
783 	"[+1?An end of options was encountered.]"
784 	"[+2?A usage or information message was generated.]"
785 "}"
786 ;
787 
788 const char sh_optbg[] =
789 "[-1c?@(#)$Id: bg (AT&T Research) 2000-04-02 $\n]"
790 USAGE_LICENSE
791 "[+NAME?bg - resume jobs in the background]"
792 "[+DESCRIPTION?\bbg\b places the given \ajob\as into the background "
793 	"and sends them a \bCONT\b signal to start them running.]"
794 "[+?If \ajob\a is omitted, the most recently started or stopped "
795 	"background job is resumed or continued in the background.]"
796 "[+?Each \ajob\a can be specified as one of the following:]{"
797 	"[+\anumber\a?\anumber\a refers to a process id.]"
798 	"[+-\anumber\a?\anumber\a refers to a process group id.]"
799 	"[+%\anumber\a?\anumber\a refer to a job number.]"
800 	"[+%\astring\a?Refers to a job whose name begins with \astring\a.]"
801 	"[+%??\astring\a?Refers to a job whose name contains \astring\a.]"
802 	"[+%+ \bor\b %%?Refers to the current job.]"
803 	"[+%-?Refers to the previous job.]"
804 "}"
805 "\n"
806 "\n[job ...]\n"
807 "\n"
808 "[+EXIT STATUS?]{"
809 	"[+0?If all background jobs are started.]"
810 	"[+>0?If one more jobs does not exist or there are no background "
811 		"jobs.]"
812 "}"
813 
814 "[+SEE ALSO?\bwait\b(1), \bfg\b(1), \bdisown\b(1), \bjobs\b(1)]"
815 ;
816 
817 const char sh_optfg[] =
818 "[-1c?@(#)$Id: fg (AT&T Research) 2000-04-02 $\n]"
819 USAGE_LICENSE
820 "[+NAME?fg - move jobs to the foreground]"
821 "[+DESCRIPTION?\bfg\b places the given \ajob\as into the foreground "
822 	"in sequence and sends them a \bCONT\b signal to start each running.]"
823 "[+?If \ajob\a is omitted, the most recently started or stopped "
824 	"background job is moved to the foreground.]"
825 "[+?Each \ajob\a can be specified as one of the following:]{"
826 	"[+\anumber\a?\anumber\a refers to a process id.]"
827 	"[+-\anumber\a?\anumber\a refers to a process group id.]"
828 	"[+%\anumber\a?\anumber\a refer to a job number.]"
829 	"[+%\astring\a?Refers to a job whose name begins with \astring\a.]"
830 	"[+%??\astring\a?Refers to a job whose name contains \astring\a.]"
831 	"[+%+ \bor\b %%?Refers to the current job.]"
832 	"[+%-?Refers to the previous job.]"
833 "}"
834 "\n"
835 "\n[job ...]\n"
836 "\n"
837 "[+EXIT STATUS?If \bfg\b brings one or more jobs into the foreground, "
838 	"the exit status of \bfg\b  will be that of the last \ajob\a.  "
839 	"If one or more jobs does not exist or has completed, \bfg\b will "
840 	"return a non-zero exit status.]"
841 "}"
842 
843 "[+SEE ALSO?\bwait\b(1), \bbg\b(1), \bjobs\b(1)]"
844 ;
845 
846 const char sh_optdisown[] =
847 "[-1c?@(#)$Id: disown (AT&T Research) 2000-04-02 $\n]"
848 USAGE_LICENSE
849 "[+NAME?disown - disassociate a job with the current shell]"
850 "[+DESCRIPTION?\bdisown\b prevents the current shell from sending "
851 	"a \bHUP\b signal to each of the given \ajob\as when "
852 	"the current shell terminates a login session.]"
853 "[+?If \ajob\a is omitted, the most recently started or stopped "
854 	"background job is used.]"
855 "[+?Each \ajob\a can be specified as one of the following:]{"
856 	"[+\anumber\a?\anumber\a refers to a process id.]"
857 	"[+-\anumber\a?\anumber\a refers to a process group id.]"
858 	"[+%\anumber\a?\anumber\a refer to a job number.]"
859 	"[+%\astring\a?Refers to a job whose name begins with \astring\a.]"
860 	"[+%??\astring\a?Refers to a job whose name contains \astring\a.]"
861 	"[+%+ \bor\b %%?Refers to the current job.]"
862 	"[+%-?Refers to the previous job.]"
863 "}"
864 "\n"
865 "\n[job ...]\n"
866 "\n"
867 "[+EXIT STATUS?]{"
868 	"[+0?If all jobs are sucessfully disowned.]"
869 	"[+>0?If one more \ajob\as does not exist.]"
870 "}"
871 
872 "[+SEE ALSO?\bwait\b(1), \bbg\b(1), \bjobs\b(1)]"
873 ;
874 
875 const char sh_optjobs[] =
876 "[-1c?@(#)$Id: jobs (AT&T Research) 2000-04-02 $\n]"
877 USAGE_LICENSE
878 "[+NAME?jobs - display status of jobs]"
879 "[+DESCRIPTION?\bjobs\b displays information about specified \ajob\as "
880 	"that were started by the current shell environment on standard "
881 	"output.  The information contains the job number enclosed in "
882 	"[...]], the status, and the command line that started the job.]"
883 "[+?If \ajob\a is omitted, \bjobs\b displays the status of all stopped jobs, "
884 	"background jobs, and all jobs whose status has changed since last "
885 	"reported by the shell.]"
886 "[+?When \bjobs\b reports the termination status of a job, the "
887 	"shell removes the jobs from the list of known jobs in "
888 	"the current shell environment.]"
889 "[+?Each \ajob\a can be specified as one of the following:]{"
890 	"[+\anumber\a?\anumber\a refers to a process id.]"
891 	"[+-\anumber\a?\anumber\a refers to a process group id.]"
892 	"[+%\anumber\a?\anumber\a refer to a job number.]"
893 	"[+%\astring\a?Refers to a job whose name begins with \astring\a.]"
894 	"[+%??\astring\a?Refers to a job whose name contains \astring\a.]"
895 	"[+%+ \bor\b %%?Refers to the current job.]"
896 	"[+%-?Refers to the previous job.]"
897 "}"
898 "[l?\bjobs\b displays process id's after the job number in addition "
899 	"to the usual information]"
900 "[n?Only the jobs whose status has changed since the last prompt "
901 	"is displayed.]"
902 "[p?The process group leader id's for the specified jobs are displayed.]"
903 "\n"
904 "\n[job ...]\n"
905 "\n"
906 "[+EXIT STATUS?]{"
907 	"[+0?The information for each job is written to standard output.]"
908 	"[+>0?One or more jobs does not exist.]"
909 "}"
910 
911 "[+SEE ALSO?\bwait\b(1), \bps\b(1), \bfg\b(1), \bbg\b(1)]"
912 ;
913 
914 const char sh_opthist[]	=
915 "[-1c?@(#)$Id: hist (AT&T Research) 2000-04-02 $\n]"
916 USAGE_LICENSE
917 "[+NAME?\f?\f - process command history list]"
918 "[+DESCRIPTION?\b\f?\f\b lists, edits, or re-executes, commands  "
919 	"previously entered into the current shell environment.]"
920 "[+?The command history list references commands by number. The first number "
921 	"in the list is selected arbitrarily.  The relationship of a number "
922 	"to its command does not change during a login session.  When the "
923 	"number reaches 32767 the number wraps around to 1 but "
924 	"maintains the ordering.]"
925 "[+?When commands are edited (when the \b-l\b option is not specified), the "
926 	"resulting lines will be entered at the end of the history list and "
927 	"then reexecuted by the current shell.  The \b\f?\f\b command that "
928 	"caused the editing will not be entered into the history list.  If the "
929 	"editor returns a non-zero exit status, this will suppress the "
930 	"entry into the history list and the command reexecution.  Command "
931 	"line variable assignments and redirections affect both the \f?\f "
932 	"command and the commands that are reexecuted.]"
933 "[+?\afirst\a and \alast\a define the range of commands. \afirst\a and "
934 		"\alast\a can be one of the following:]{"
935 		"[+\anumber\a?A positive number representing a command "
936 			"number.  A \b+\b sign can precede \anumber\a.]"
937 		"[+-\anumber\a?A negative number representing a command "
938 			"that was executed \anumber\a commands previously. "
939 			"For example, \b-1\b is the previous command.]"
940 		"[+\astring\a?\astring\a indicates the most recently "
941 			"entered command that begins with \astring\a. "
942 			"\astring\a should not contain an \b=\b.]"
943 	"}"
944 "[+?If \afirst\a is omitted, the previous command is used, unless \b-l\b "
945 	"is specified, in which case it will default to \b-16\b and \alast\a "
946 	"will default to \b-1\b.]"
947 "[+?If \afirst\a is specified and \alast\a is omitted, then \alast\a will "
948 	"default to \afirst\a unless \b-l\b is specified in which case "
949 	"it will default to \b-1\b.]"
950 "[+?If no editor is specified, then the editor specfied by the \bHISTEDIT\b "
951 	"variable will be used if set, or the \bFCEDIT\b variable will be "
952 	"used if set, otherwise, \bed\b will be used.]"
953 "[e]:[editor?\aeditor\a specifies the editor to use to edit the history "
954 	"command.   A value of \b-\b for \aeditor\a is equivalent to "
955 	"specifiying the \b-s\b option.]"
956 "[l?List the commands rather than editing and reexecuting them.]"
957 "[N]#[num?Start at \anum\a commands back.]"
958 "[n?Suppress the command numbers when the commands are listed.]"
959 #if SHOPT_HISTEXPAND
960 "[p?Writes the result of history expansion for each operand to standard "
961 	"output.  All other options are ignored.]"
962 #endif
963 "[r?Reverse the order of the commands.]"
964 "[s?Reexecute the command without invoking an editor.  In this case "
965 	"an operand of the form \aold\a\b=\b\anew\a can be specified "
966 	"to change the first occurrence of the string \aold\a in the "
967 	"command to \anew\a before reexecuting the command.]"
968 
969 "\n"
970 "\n[first [last] ]\n"
971 "\n"
972 "[+EXIT STATUS?If a command is reexecuted, the exit status is that of "
973 	"the command that gets reexecuted.  Otherwise, it is one of the "
974 	"following:]{"
975 	"[+0?Successfully completion of the listing.]"
976 	"[+>0?An error occurred.]"
977 "}"
978 
979 "[+SEE ALSO?\bksh\b(1), \bsh\b(1), \bed\b(1)]"
980 ;
981 
982 const char sh_optkill[]	 =
983 "[-1c?\n@(#)$Id: kill (AT&T Research) 1999-06-17 $\n]"
984 USAGE_LICENSE
985 "[+NAME?kill - terminate or signal process]"
986 "[+DESCRIPTION?With the first form in which \b-l\b is not specified, "
987 	"\bkill\b sends a signal to one or more processes specified by "
988 	"\ajob\a.  This normally terminates the processes unless the signal "
989 	"is being caught or ignored.]"
990 "[+?A \ajob\a can be specified as one of the following:]{"
991 	"[+\anumber\a?\anumber\a refers to a process id.]"
992 	"[+-\anumber\a?\anumber\a refers to a process group id.]"
993 	"[+%\anumber\a?\anumber\a refer to a job number.]"
994 	"[+%\astring\a?Refers to a job whose name begins with \astring\a.]"
995 	"[+%??\astring\a?Refers to a job whose name contains \astring\a.]"
996 	"[+%+ \bor\b %%?Refers to the current job.]"
997 	"[+%-?Refers to the previous job.]"
998 "}"
999 "[+?If the signal is not specified with either the \b-n\b or the \b-s\b  "
1000 	"option, the \bSIGTERM\b signal is used.]"
1001 "[+?If \b-l\b is specified, and no \aarg\a is specified, then \bkill\b "
1002 	"writes the list of signals to standard output.  Otherwise, \aarg\a "
1003 	"can be either a signal name, or a number representing either a "
1004 	"signal number or exit status for a process that was terminated "
1005 	"due to a signal.  If a name is given the corresponding signal "
1006 	"number will be written to standard output.  If a number is given "
1007 	"the corresponding signal name will be written to standard output.]"
1008 "[l?List signal names or signal numbers rather than sending signals as "
1009 	"described above.  "
1010 	"The \b-n\b and \b-s\b options cannot be specified.]"
1011 "[n]#[signum?Specify a signal number to send.  Signal numbers are not "
1012 	"portable across platforms, except for the following:]{"
1013 		"[+0?No signal]"
1014 		"[+1?\bHUP\b]"
1015 		"[+2?\bINT\b]"
1016 		"[+3?\bQUIT\b]"
1017 		"[+6?\bABRT\b]"
1018 		"[+9?\bKILL\b]"
1019 		"[+14?\bALRM\b]"
1020 		"[+15?\bTERM\b]"
1021 	"}"
1022 "[s]:[signame?Specify a signal name to send.  The signal names are derived "
1023 	"from their names in \b<signal.h>\b without the \bSIG\b prefix and "
1024 	"are case insensitive.  \bkill -l\b will generate the list of "
1025 	"signals on the current platform.]"
1026 "\n"
1027 "\njob ...\n"
1028 " -l [arg ...]\n"
1029 "\n"
1030 "[+EXIT STATUS?]{"
1031 	"[+0?At least one matching process was found for each \ajob\a "
1032 	"operand, and the specified signal was successfully sent to at "
1033 	"least one matching process.]"
1034 	"[+>0?An error occurred.]"
1035 "}"
1036 "[+SEE ALSO?\bps\b(1), \bjobs\b(1), \bkill\b(2), \bsignal\b(2)]"
1037 ;
1038 
1039 const char sh_optlet[]	=
1040 "[-1c?@(#)$Id: let (AT&T Research) 2000-04-02 $\n]"
1041 USAGE_LICENSE
1042 "[+NAME?let - evaluate arithmetic expressions]"
1043 "[+DESCRIPTION?\blet\b evaluates each \aexpr\a in the current "
1044 	"shell environment as an arithmetic expression using ANSI C "
1045 	"syntax.  Variables names are shell variables and they "
1046 	"are recursively evaluated as arithmetic expressions to "
1047 	"get numerical values.]"
1048 "[+?\blet\b has been made obsolete by the \b((\b...\b))\b syntax "
1049 	"of \bksh\b(1) which does not require quoting of the operators "
1050 	"to pass them as command arguments.]"
1051 "\n"
1052 "\n[expr ...]\n"
1053 "\n"
1054 "[+EXIT STATUS?]{"
1055 	"[+0?The last \aexpr\a evaluates to a non-zero value.]"
1056 	"[+>0?The last \aexpr\a evaluates to \b0\b or an error occurred.]"
1057 "}"
1058 
1059 "[+SEE ALSO?\bexpr\b(1), \btest\b(1), \bksh\b(1)]"
1060 ;
1061 
1062 const char sh_optprint[] =
1063 "[-1c?\n@(#)$Id: print (AT&T Research) 1999-04-07 $\n]"
1064 USAGE_LICENSE
1065 "[+NAME?print - write arguments to standard output]"
1066 "[+DESCRIPTION?By default, \bprint\b writes each \astring\a operand to "
1067 	"standard output and appends a newline character.]"
1068 "[+?Unless, the \b-r\b or \b-f\b option is specifed, each \b\\\b "
1069 	"character in each \astring\a operand is processed specially as "
1070 	"follows:]{"
1071 		"[+\\a?Alert character.]"
1072 		"[+\\b?Backspace character.]"
1073 		"[+\\c?Terminate output without appending newline.  The "
1074 			"remaining \astring\a operands are ignored.]"
1075 		"[+\\f?Formfeed character.]"
1076 		"[+\\n?Newline character.]"
1077 		"[+\\t?Tab character.]"
1078 		"[+\\v?Vertical tab character.]"
1079 		"[+\\\\?Backslash character.]"
1080 		"[+\\E?Escape character (ASCII octal 033).]"
1081 		"[+\\0\ax\a?The 8-bit character whose ASCII code is the "
1082 			"1-, 2-, or 3-digit octal number \ax\a.]"
1083 	"}"
1084 "[+?If both \b-e\b and \b-r\b are specified, the last one specified is "
1085 	"the one that is used.]"
1086 "[+?When the \b-f\b option is specified and there are more \astring\a "
1087 	"operands than format specifiers, the format string is "
1088 	"reprocessed from the beginning.  If there are fewer \astring\a "
1089 	"operands than format specifiers, then outputting will end "
1090 	"at the first unneeded format specifier.]"
1091 "[e?Unless \b-f\b is specified, process \b\\\b sequences in each \astring\a "
1092 	"operand as described above. This is the default behavior.]"
1093 "[n?Do not append a new-line character to the output.]"
1094 "[f]:[format?Write the \astring\a arguments using the format string "
1095 	"\aformat\a and do not append a new-line.  See \bprintf\b for "
1096 	"details on how to specify \aformat\a.]"
1097 "[p?Write to the current co-process instead of standard output.]"
1098 "[r?Do not process \b\\\b sequences in each \astring\a operand as described "
1099 	"above.]"
1100 "[s?Write the output as an entry in the shell history file instead of "
1101 	"standard output.]"
1102 "[u]:[fd:=1?Write to file descriptor number \afd\a instead of standard output.]"
1103 "\n"
1104 "\n[string ...]\n"
1105 "\n"
1106 "[+EXIT STATUS?]{"
1107 	"[+0?Successful completion.]"
1108 	"[+>0?An error occurred.]"
1109 "}"
1110 "[+SEE ALSO?\becho\b(1), \bprintf\b(1), \bread\b(1)]"
1111 ;
1112 
1113 const char sh_optprintf[] =
1114 "[-1c?\n@(#)$Id: printf (AT&T Research) 2006-10-26 $\n]"
1115 USAGE_LICENSE
1116 "[+NAME?printf - write formatted output]"
1117 "[+DESCRIPTION?\bprintf\b writes each \astring\a operand to "
1118 	"standard output using \aformat\a to control the output format.]"
1119 "[+?The \aformat\a operands supports the full range of ANSI C formatting "
1120 	"specifiers plus the following additional specifiers:]{"
1121 	"[+%b?Each character in the \astring\a operand is processed "
1122 		"specially as follows:]{"
1123 			"[+\\a?Alert character.]"
1124 			"[+\\b?Backspace character.]"
1125 			"[+\\c?Terminate output without appending newline. "
1126 			    "The remaining \astring\a operands are ignored.]"
1127 			"[+\\f?Formfeed character.]"
1128 			"[+\\n?Newline character.]"
1129 			"[+\\t?Tab character.]"
1130 			"[+\\v?Vertical tab character.]"
1131 			"[+\\\\?Backslash character.]"
1132 			"[+\\E?Escape character (ASCII octal 033).]"
1133 			"[+\\0\ax\a?The 8-bit character whose ASCII code is "
1134 				"the 1-, 2-, or 3-digit octal number \ax\a.]"
1135 		"}"
1136 	"[+%q?Output \astring\a quoted in a manner that it can be read in "
1137 		"by the shell to get back the same string.  However, empty "
1138 		"strings resulting from missing \astring\a operands will "
1139 		"not be quoted.]"
1140 	"[+%B?Treat the argument as a variable name and output the value "
1141 		"without converting it to a string.  This is most useful for "
1142 		"variables of type \b-b\b.]"
1143 	"[+%H?Output \astring\a with characters \b<\b, \b&\b, \b>\b, "
1144 		"\b\"\b, and non-printable characters properly escaped for "
1145 		"use in HTML and XML documents.]"
1146 	"[+%P?Treat \astring\a as an extended regular expression and  "
1147 		"convert it to a shell pattern.]"
1148 	"[+%R?Treat \astring\a as an shell pattern expression and  "
1149 		"convert it to an extended regular expression.]"
1150 	"[+%T?Treat \astring\a as a date/time string and format it.  The "
1151 		"\bT\b can be preceded by \b(\b\adformat\a\b)\b, where "
1152 		"\adformat\a is a date format as defined by the \bdate\b "
1153 		"command.]"
1154 	"[+%Z?Output a byte whose value is \b0\b.]"
1155 "}"
1156 "[+?When performing conversions of \astring\a to satisfy a numeric "
1157 	"format specifier, if the first character of \astring\a "
1158 	"is \b\"\b or \b'\b, then the value will be the numeric value "
1159 	"in the underlying code set of the character following the "
1160 	"\b\"\b or \b'\b.  Otherwise, \astring\a is treated like a shell "
1161 	"arithmetic expression and evaluated.]"
1162 "[+?If a \astring\a operand cannot be completed converted into a value "
1163 	"appropriate for that format specifier, an error will occur, "
1164 	"but remaining \astring\a operands will continue to be processed.]"
1165 "[+?In addition to the format specifier extensions, the following "
1166 	"extensions of ANSI-C are permitted in format specifiers:]{"
1167 	"[+-?The escape sequences \b\\E\b and \b\\e\b expand to the escape "
1168 		"character which is octal \b033\b in ASCII.]"
1169 	"[+-?The escape sequence \b\\c\b\ax\a expands to Control-\ax\a.]"
1170 	"[+-?The escape sequence \b\\C[.\b\aname\a\b.]]\b expands to "
1171 		"the collating element \aname\a.]"
1172 	"[+-?The escape sequence \b\\x{\b\ahex\a\b}\b expands to the "
1173 		"character corresponding to the hexidecimal value \ahex\a.]"
1174 	"[+-?The format modifier flag \b=\b can be used to center a field to "
1175 		"a specified width.  When the output is a terminal, the "
1176 		"character width is used rather than the number of bytes.]"
1177 	"[+-?Each of the integral format specifiers can have a third "
1178 		"modifier after width and precision that specifies the "
1179 		"base of the conversion from 2 to 64.  In this case the "
1180 		"\b#\b modifier will cause \abase\a\b#\b to be prepended to "
1181 		"the value.]"
1182 	"[+-?The \b#\b modifier can be used with the \bd\b specifier when "
1183 		"no base is specified cause the output to be written in units "
1184 		"of \b1000\b with a suffix of one of \bk M G T P E\b.]"
1185 	"[+-?The \b#\b modifier can be used with the \bi\b specifier to "
1186 		"cause the output to be written in units of \b1024\b with "
1187 		"a suffix of one of \bKi Mi Gi Ti Pi Ei\b.]"
1188 	"}"
1189 "[+?If there are more \astring\a operands than format specifiers, the "
1190 	"\aformat\a string is reprocessed from the beginning.  If there are "
1191 	"fewer \astring\a operands than format specifiers, then string "
1192 	"specifiers will be treated as if empty strings were supplied, "
1193 	"numeric conversions will be treated as if 0 were supplied, and "
1194 	"time conversions will be treated as if \bnow\b were supplied.]"
1195 "[+?\bprintf\b is equivalent to \bprint -f\b which allows additional "
1196 	"options to be specified.]"
1197 "\n"
1198 "\nformat [string ...]\n"
1199 "\n"
1200 "[+EXIT STATUS?]{"
1201 	"[+0?Successful completion.]"
1202 	"[+>0?An error occurred.]"
1203 "}"
1204 "[+SEE ALSO?\bdate\b(1), \bprint\b(1), \bread\b(1)]"
1205 ;
1206 
1207 const char sh_optpwd[] =
1208 "[-1c?\n@(#)$Id: pwd (AT&T Research) 1999-06-07 $\n]"
1209 USAGE_LICENSE
1210 "[+NAME?pwd - write working directory name]"
1211 "[+DESCRIPTION?\bpwd\b writes an absolute pathname of the current working "
1212 	"directory to standard output.   An absolute pathname is a "
1213 	"pathname that begins with \b/\b that does not contains any "
1214 	"\b.\b  or \b..\b components.]"
1215 "[+?If both \b-L\b and \b-P\b are specified, the last one specified will "
1216 	"be used.  If neither \b-P\b or \b-L\b is specified then the "
1217 	"behavior will be determined by the \bgetconf\b parameter "
1218 	"\bPATH_RESOLVE\b.  If \bPATH_RESOLVE\b is \bphysical\b, "
1219 	"then the behavior will be as if \b-P\b were specified.  Otherwise, "
1220 	"the behavior will be as if  \b-L\b were specified.]"
1221 "[L?The absolute pathname may contains symbolic link components.  This is "
1222 	"the default.]"
1223 "[P?The absolute pathname will not contain any symbolic link components.]"
1224 "[+EXIT STATUS?]{"
1225 	"[+0?Successful completion.]"
1226 	"[+>0?An error occurred.]"
1227 "}"
1228 "[+SEE ALSO?\bcd\b(1), \bgetconf\b(1)]"
1229 ;
1230 
1231 const char sh_optread[] =
1232 "[-1c?\n@(#)$Id: read (AT&T Research) 2006-12-19 $\n]"
1233 USAGE_LICENSE
1234 "[+NAME?read - read a line from standard input]"
1235 "[+DESCRIPTION?\bread\b reads a line from standard input and breaks it "
1236 	"into fields using the characters in value of the \bIFS\b variable "
1237 	"as separators.  The escape character, \b\\\b, is used to remove "
1238 	"any special meaning for the next character and for line continuation "
1239 	"unless the \b-r\b option is specified.]"
1240 "[+?If there are more variables than fields, the remaining variables are "
1241 	"set to empty strings.  If there are fewer variables than fields, "
1242 	"the leftover fields and their intervening separators are assigned "
1243 	"to the last variable.  If no \avar\a is specifed then the variable "
1244 	"\bREPLY\b is used.]"
1245 "[+?When \avar\a has the binary attribute and \b-n\b or \b-N\b is specified, "
1246 	"the bytes that are read are stored directly into \bvar\b.]"
1247 "[+?If you specify \b?\b\aprompt\a after the first \avar\a, then \bread\b "
1248 	"will display \aprompt\a on standard error when standard input "
1249 	"is a terminal or pipe.]"
1250 "[A?Unset \avar\a and then create an indexed array containing each field in "
1251 	"the line starting at index 0.]"
1252 "[d]:[delim?Read until delimiter \adelim\a instead of to the end of line.]"
1253 "[p?Read from the current co-process instead of standard input.  An end of "
1254 	"file causes \bread\b to disconnect the co-process so that another "
1255 	"can be created.]"
1256 "[r?Do not treat \b\\\b specially when processing the input line.]"
1257 "[s?Save a copy of the input as an entry in the shell history file.]"
1258 "[u]#[fd:=0?Read from file descriptor number \afd\a instead of standard input.]"
1259 "[t]:[timeout?Specify a timeout \atimeout\a in seconds when reading from "
1260 	"a terminal or pipe.]"
1261 "[n]#[nbyte?Read at most \ansize\a characters.  For binary fields \asize\a "
1262 	"will be in bytes.]"
1263 "[N]#[nbyte?Read exactly \ansize\a characters.  For binary fields \asize\a "
1264 	"will be in bytes.]"
1265 "[v?When reading from a terminal the value of the first variable is displayed "
1266 	"and used as a default value.]"
1267 "\n"
1268 "\n[var?prompt] [var ...]\n"
1269 "\n"
1270 "[+EXIT STATUS?]{"
1271 	"[+0? Successful completion.]"
1272 	"[+>0?End of file was detected or an error occurred.]"
1273 "}"
1274 "[+SEE ALSO?\bprint\b(1), \bprintf\b(1), \bcat\b(1)]"
1275 ;
1276 
1277 const char sh_optreadonly[] =
1278 "[-1c?\n@(#)$Id: readonly (AT&T Research) 1999-07-07 $\n]"
1279 USAGE_LICENSE
1280 "[+NAME?readonly - set readonly attribute on variables]"
1281 "[+DESCRIPTION?\breadonly\b sets the readonly attribute on each of "
1282 	"the variables specified by \aname\a which prevents their "
1283 	"values from being changed.  If \b=\b\avalue\a is specified, "
1284 	"the variable \aname\a is set to \avalue\a before the variable "
1285 	"is made readonly.]"
1286 "[+?If no \aname\as are specified then the names and values of all "
1287 	"readonly variables are written to standard output.]"
1288 "[+?\breadonly\b is built-in to the shell as a declaration command so that "
1289 	"field splitting and pathname expansion are not performed on "
1290 	"the arguments.  Tilde expansion occurs on \avalue\a.]"
1291 "[p?Causes the output to be in a form of \breadonly\b commands that can be "
1292 	"used as input to the shell to recreate the current set of "
1293 	"readonly variables.]"
1294 "\n"
1295 "\n[name[=value]...]\n"
1296 "\n"
1297 "[+EXIT STATUS?]{"
1298         "[+0?Successful completion.]"
1299         "[+>0?An error occurred.]"
1300 "}"
1301 
1302 "[+SEE ALSO?\bsh\b(1), \btypeset\b(1)]"
1303 ;
1304 
1305 const char sh_optreturn[] =
1306 "[-1c?\n@(#)$Id: return (AT&T Research) 1999-07-07 $\n]"
1307 USAGE_LICENSE
1308 "[+NAME?return - return from a function or dot script ]"
1309 "[+DESCRIPTION?\breturn\b is a shell special built-in that causes the "
1310 	"function or dot script that invokes it to exit.  "
1311 	"If \breturn\b is invoked outside of a function or dot script "
1312 	"it is equivalent to \bexit\b.]"
1313 "[+?If \breturn\b is invoked inside a function defined with the \bfunction\b "
1314 	"reserved word syntax, then any \bEXIT\b trap set within the "
1315 	"then function will be invoked in the context of the caller "
1316 	"before the function returns.]"
1317 "[+?If \an\a is given, it will be used to set the exit status.]"
1318 "\n"
1319 "\n[n]\n"
1320 "\n"
1321 "[+EXIT STATUS?If \an\a is specified, the exit status is the least significant "
1322 	"eight bits of the value of \an\a.  Otherwise, the exit status is the "
1323 	"exit status of preceding command.]"
1324 "[+SEE ALSO?\bbreak\b(1), \bexit\b(1)]"
1325 ;
1326 
1327 
1328 const char sh_optksh[] =
1329 "+[-1c?\n@(#)$Id: sh (AT&T Research) "SH_RELEASE" $\n]"
1330 USAGE_LICENSE
1331 "[+NAME?\b\f?\f\b - Shell, the standard command language interpreter]"
1332 "[+DESCRIPTION?\b\f?\f\b is a command language interpreter that "
1333 	"executes commands read from a command line string, the "
1334 	"standard input, or a specified file.]"
1335 "[+?If the \b-i\b option is present, or there are no \aarg\as and "
1336 	"the standard input and standard error are attached to a "
1337 	"terminal, the shell is considered to be interactive.]"
1338 "[+?The \b-s\b and \b-c\b options are mutually exclusive.  If the \b-c\b "
1339 	"option is specified, the first \aarg\a is the command-line string "
1340 	"and must be specified.  Any remaining \aarg\as will be used "
1341 	"to initialize \b$0\b and positional parameters.]"
1342 "[+?If the neither \b-s\b nor \b-c\b is specified, then the first \barg\b "
1343 	"will be the pathname of the file containing commands and \b$0\b "
1344 	"will be set to this value.  If there is no file with this pathname, "
1345 	"and this pathame does not contain a \b/\b, then the \bPATH\b "
1346 	"will be searched for an executable with this name.  Any remaining "
1347 	"\aarg\as will be used to initialize the positional parmaeters.]"
1348 "[+?Any option can use a \b+\b instead of a \b-\b to disable the corresponding "
1349 	"option.]"
1350 "[c?Read the commands from the first \aarg\a.]"
1351 "[i?Specifies that the shell is interactive.]"
1352 "[l?Invoke the shell as a login shell; \b/etc/profile\b and \b$HOME/.profile\b, "
1353 	"if they exist, are read before the first command.]"
1354 "[r\f:restricted\f?Invoke the shell in a restricted mode.  A restricted "
1355 	"shell does not permit any of the following:]{"
1356 	"[+-?Changing the working directory.]"
1357 	"[+-?Setting values or attributes of the variables \bSHELL\b, "
1358 		"\bENV\b, \bFPATH\b, or \bPATH\b.]"
1359 	"[+-?Executing any command whose name as a \b/\b in it.]"
1360 	"[+-?Redirecting output of a command with \b>\b, \b>|\b, "
1361 		"\b<>\b, or \b>>\b.]"
1362 	"[+-?Adding or deleting built-in commands or libraries with "
1363 		"\bbuiltin\b.]"
1364 	"[+-?Executing \bcommand -p\b \a...\a .]"
1365 	"}"
1366 "[s?Read the commands from standard input.  The positional parameters will be "
1367 	"initialized from \aarg\a.]"
1368 "[D\f:dump-strings\f?Do not execute the script, but output the set of double "
1369 	"quoted strings preceded by a \b$\b.  These strings are needed for "
1370 	"localization of the script to different locales.]"
1371 "[E?Reads the file \b${ENV-$HOME/.kshrc}\b, if it exists, as a profile. "
1372 	"On by default for interactive shells; use \b+E\b to disable.]"
1373 #if SHOPT_PFSH
1374 "[P?Invoke the shell as a profile shell.  See \bpfexec\b(1).]"
1375 #endif
1376 #if SHOPT_KIA
1377 "[R]:[file?Do not execute the script, but create a cross reference database "
1378 	"in \afile\a that can be used a separate shell script browser.]"
1379 #endif /* SHOPT_KIA */
1380 #if SHOPT_BASH
1381    "\fbash2\f"
1382 #endif
1383 "\fabc\f"
1384 "\n"
1385 "\n[arg ...]\n"
1386 "\n"
1387 "[+EXIT STATUS?If \b\f?\f\b executes command, the exit status will be that "
1388         "of the last command executed.  Otherwise, it will be one of "
1389         "the following:]{"
1390         "[+0?The script or command line to be executed consists entirely "
1391 		"of zero or more blank lines or comments.]"
1392         "[+>1-125?A noninteractive shell detected a syntax error, a variable "
1393 		"assignment error, or an error in a special built-in.]"
1394 	"[+126?\b-c\b and \b-s\b were not specified and the command script "
1395 		"was found on \bPATH\b but was not executable.]"
1396 	"[+127?\b-c\b and \b-s\b were not specified and the command script "
1397 		"corresponding to \aarg\a could not be found.]"
1398 "}"
1399 
1400 "[+SEE ALSO?\bset\b(1), \bbuiltin\b(1)]"
1401 ;
1402 const char sh_optset[] =
1403 "+[-1c?\n@(#)$Id: set (AT&T Research) 1999-09-28 $\n]"
1404 USAGE_LICENSE
1405 "[+NAME?set - set/unset options and positional parameters]"
1406 "[+DESCRIPTION?\bset\b sets or unsets options and positional parameters.  "
1407 	"Options that are specified with a \b-\b cause the options to "
1408 	"be set.  Options that are specified with a \b+\b cause the "
1409 	"option to be unset.]"
1410 "[+?\bset\b without any options or arguments displays the names and "
1411 	"values of all shell variables in the order of the collation "
1412 	"sequence in the current locale.  The values are quoted so that "
1413 	"they are suitable for reinput to the shell.]"
1414 "[+?If no \aarg\as are specified, not even the end of options argument \b--\b, "
1415 	"the positional parameters are unchanged.  Otherwise, unless "
1416 	"the \b-A\b options has been specified, the positional parameters "
1417 	"are replaced by the list of \aarg\as.  A first \aarg\a of "
1418 	"\b--\b is ignored when setting positional parameters.]"
1419 "[+?For backward compatibility, a \bset\b command without any options "
1420 	"specified whose first \aarg\a is \b-\b will turn off "
1421 	"the \b-v\b and \b-x\b options.  If any additional \aarg\as "
1422 	"are specified, they will replace the positional parameters.]"
1423 "[s?Sort the positional parameters.]"
1424 "[A]:[name?Assign the arguments sequentially to the array named by \aname\a "
1425 	"starting at subscript 0 rather than to the positional parameters.]"
1426 "\fabc\f"
1427 "\n"
1428 "\n[arg ...]\n"
1429 "\n"
1430 "[+EXIT STATUS?]{"
1431         "[+0?No errors occurred.]"
1432         "[+>0?An error occurred.]"
1433 "}"
1434 
1435 "[+SEE ALSO?\btypeset\b(1), \bshift\b(1)]"
1436 ;
1437 
1438 
1439 
1440 const char sh_optshift[] =
1441 "[-1c?\n@(#)$Id: shift (AT&T Research) 1999-07-07 $\n]"
1442 USAGE_LICENSE
1443 "[+NAME?shift - shift positional parameters]"
1444 "[+DESCRIPTION?\bshift\b is a shell special built-in that shifts the "
1445 	"positional parameters to the left by the number of places "
1446 	"defined by \an\a, or \b1\b if \an\a is omitted.  The number of "
1447 	"positional parameters remaining will be reduced by the "
1448 	"number of places that are shifted.]"
1449 "[+?If \an\a is given, it will be evaluated as an arithmetic expression "
1450 	"to determinate the number of places to shift.  It is an error "
1451 	"to shift more than the number of positional parameters or a "
1452 	"negative number of places.]"
1453 "\n"
1454 "\n[n]\n"
1455 "\n"
1456 "[+EXIT STATUS?]{"
1457         "[+0?The positional parameters were successfully shifted.]"
1458         "[+>0?An error occurred.]"
1459 "}"
1460 "[+SEE ALSO?\bset\b(1)]"
1461 ;
1462 
1463 const char sh_optsleep[] =
1464 "[-1c?\n@(#)$Id: sleep (AT&T Research) 1999-04-07 $\n]"
1465 USAGE_LICENSE
1466 "[+NAME?sleep - suspend execution for an interval]"
1467 "[+DESCRIPTION?\bsleep\b suspends execution for at least the time specified "
1468 	"by \aseconds\a or until a \bSIGALRM\b signal is received.  "
1469 	"\aseconds\a can be specifed as a floating point number but the "
1470 	"actual granularity depends on the underlying system, normally "
1471 	"around 1 millisecond.]"
1472 "\n"
1473 "\nseconds\n"
1474 "\n"
1475 "[+EXIT STATUS?]{"
1476 	"[+0?The execution was successfully suspended for at least \atime\a "
1477 	"seconds, or a \bSIGALRM\b signal was received.]"
1478 	"[+>0?An error occurred.]"
1479 "}"
1480 "[+SEE ALSO?\btime\b(1), \bwait\b(1)]"
1481 ;
1482 
1483 const char sh_opttrap[] =
1484 "[-1c?\n@(#)$Id: trap (AT&T Research) 1999-07-17 $\n]"
1485 USAGE_LICENSE
1486 "[+NAME?trap - trap signals and conditions]"
1487 "[+DESCRIPTION?\btrap\b is a special built-in that defines actions to be "
1488 	"taken when conditions such as receiving a signal occur.  Also, "
1489 	"\btrap\b can be used to display the current trap settings on "
1490 	"standard output.]"
1491 "[+?If \aaction\a is \b-\b, \btrap\b resets each \acondition\a "
1492 	"to the default value.  If \aaction\a is an empty string, the "
1493 	"shell ignores each of the \acondition\as if they arise. "
1494 	"Otherwise, the argument \aaction\a will be read and executed "
1495 	"by the shell as if it were processed by \beval\b(1) when one "
1496 	"of the corresponding conditions arise.  The action of the trap "
1497 	"will override any previous action associated with each specified "
1498 	"\acondition\a.  The value of \b$?\b is not altered by the trap "
1499 	"execution.]"
1500 "[+?\acondition\a can be the name or number of a signal, or one of the "
1501 	"following:]{"
1502 	"[+EXIT?This trap is executed when the shell exits.  If defined "
1503 		"within a function defined with the \bfunction\b reserved "
1504 		"word, the trap is executed in the caller's environment "
1505 		"when the function returns and the trap action is restored "
1506 		"to the value it had when it called the function.]"
1507 	"[+0?Same as EXIT.]"
1508 	"[+DEBUG?Executed before each simple command is executed but after "
1509 		"the arguments are expanded.]"
1510 	"[+ERR?Executed whenever \bset -e\b would cause the shell to exit.]"
1511 	"[+KEYBD?Executed when a key is entered from a terminal device.]"
1512 "}"
1513 "[+?Signal names are case insensitive and the \bsig\b prefix is optional.  "
1514 	"Signals that were ignored on entry to a noninteractive shell cannot "
1515 	"trapped or reset although doing so will not report an error.  The "
1516 	"use of signal numbers other than \b1\b, \b2\b, \b3\b, \b6\b, "
1517 	"\b9\b, \b14\b, and \b15\b is not portable.]"
1518 "[+?Although \btrap\b is a special built-in, specifying a condition that "
1519 	"the shell does not know about causes \btrap\b to exit with a "
1520 	"non-zero exit status, but does not terminate the invoking shell.]"
1521 "[+?If no \aaction\a or \acondition\as are specified then all the current "
1522 	"trap settings are written to standard output.]"
1523 "[p?Causes the current traps to be output in a format that can be processed "
1524 	"as input to the shell to recreate the current traps.]"
1525 "\n"
1526 "\n[action condition ...]\n"
1527 "\n"
1528 "[+EXIT STATUS?]{"
1529         "[+0?Successful completion.]"
1530         "[+>0?An error occurred.]"
1531 "}"
1532 
1533 "[+SEE ALSO?\bkill\b(1), \beval\b(1), \bsignal\b(3)]"
1534 ;
1535 
1536 const char sh_opttypeset[] =
1537 "+[-1c?\n@(#)$Id: typeset (AT&T Research) 2003-01-15 $\n]"
1538 USAGE_LICENSE
1539 "[+NAME?\f?\f - declare or display variables with attributes]"
1540 "[+DESCRIPTION?Without the \b-f\b option, \b\f?\f\b sets, unsets, "
1541 	"or displays attributes of variables as specified with the "
1542 	"options.  If the first option is specified with a \b-\b "
1543 	"then the attributes are set for each of the given \aname\as. "
1544 	"If the first option is specified with a \b+\b, then the specified "
1545 	"attributes are unset.  If \b=\b\avalue\a is specified value is "
1546 	"assigned before the attributes are set.]"
1547 "[+?When \b\f?\f\b is called inside a function defined with the "
1548 	"\bfunction\b reserved word, and \aname\a does not contain a "
1549 	"\b.\b, then a local variable statically scoped to  that function "
1550 	"will be created.]"
1551 "[+?Not all option combinations are possible.  For example, the numeric "
1552 	"options \b-i\b, \b-E\b, and \b-F\b cannot be specified with "
1553 	"the justification options \b-L\b, \b-R\b, and \b-Z\b.]"
1554 "[+?Note that the following preset aliases are set by the shell:]{"
1555 	"[+float?\b\f?\f -E\b.]"
1556 	"[+functions?\b\f?\f -f\b.]"
1557 	"[+integer?\b\f?\f -i\b.]"
1558 	"[+nameref?\b\f?\f -n\b.]"
1559 "}"
1560 "[+?If no \aname\as are specified then variables that have the specified "
1561 	"options are displayed.  If the first option is specified with "
1562 	"a leading \b-\b then the name and value of each variable is "
1563 	"written to standard output.  Otherwise, only the names are "
1564 	"written.  If no options are specified or just \b-p\b is "
1565 	"specified, then the names and attributes of all variables that have "
1566 	"attributes are written to standard output.  When \b-f\b is specified, "
1567 	"the names displayed will be function names.]"
1568 "[+?If \b-f\b is specified, then each \aname\a refers to a function "
1569 	"and the only valid options are \b-u\b and \b-t\b.  In this "
1570 	"case no \b=\b\avalue\a can be specified.]"
1571 "[+?\b\f?\f\b is built-in to the shell as a declaration command so that "
1572 	"field splitting and pathname expansion are not performed on "
1573 	"the arguments.  Tilde expansion occurs on \avalue\a.]"
1574 #if SHOPT_BASH
1575 "[a?Ignored, used for bash compatibility.]"
1576 #endif
1577 "[a?Indexed array. this is the default.]"
1578 "[b?Each \aname\a may contain binary data.  Its value is the mime "
1579 	"base64 encoding of the data. It can be used with \b-Z\b, "
1580 	"to specify fixed sized fields.]"
1581 "[f?Each of the options and \aname\as refers to a function.]"
1582 "[i]#?[base:=10?An integer. \abase\a represents the arithmetic base "
1583 	"from 2 to 64.]"
1584 "[l?Convert uppercase character to lowercase.  Unsets \b-u\b attribute.  When "
1585 	"used with \b-i\b, \b-E\b, or \b-F\b indicates long variant.]"
1586 "[n?Name reference.  The value is the name of a variable that \aname\a "
1587 	"references.  \aname\a cannot contain a \b.\b.]"
1588 "[p?Causes the output to be in a format that can be used as input to the "
1589 	"shell to recreate the attributes for variables.]"
1590 "[r?Enables readonly.  Once enabled it cannot be disabled.  See "
1591 	"\breadonly\b(1).]"
1592 "[s?Used with \b-i\b to restrict integer size to short.]"
1593 "[t?When used with \b-f\b, enables tracing for each of the specified "
1594 	"functions.  Otherwise, \b-t\b is a user defined attribute and "
1595 	"has no meaning to the shell.]"
1596 "[u?Without \b-f\b or \b-i\b, converts lowercase character to uppercase "
1597 	"and unsets \b-l\b.  With \b-f\b specifies that \aname\a is a function "
1598 	"that hasn't been loaded yet.  With \b-i\b specifies that the "
1599 	"value will be displayed as an unsigned integer.]"
1600 "[x?Puts each \aname\a on the export list.  See \bexport\b(1).  \aname\a "
1601 	"cannot contain a \b.\b.]"
1602 "[A?Associative array.  Each \aname\a will converted to an associate "
1603 	"array.  If a variable already exists, the current value will "
1604 	"become index \b0\b.]"
1605 "[E]#?[n:=10?Floating point number represented in scientific notation. "
1606 	"\an\a specifies the number of significant figures when the "
1607 	"value is expanded.]"
1608 "[F]#?[n:=10?Floating point.  \an\a is the number of places after the "
1609 	"decimal point when the value is expanded.]"
1610 "[H?Hostname mapping.  Each \aname\a holds a native pathname.  Assigning a "
1611 	"UNIX format pathname will cause it to be converted to a pathname "
1612 	"suitable for the current host.  This has no effect when the "
1613 	"native system is UNIX.]"
1614 "[L]#?[n?Left justify.  If \an\a is given it represents the field width.  If "
1615 	"the \b-Z\b attribute is also specified, then leading zeros are "
1616 	"stripped.]"
1617 "[R]#?[n?Right justify.  If \an\a is given it represents the field width.  If "
1618 	"the \b-Z\b attribute is also specified, then zeros will "
1619 	"be used as the fill character.  Otherwise, spaces are used.]"
1620 "[T]:[tname?\atname\a is the name of a type name given to each \aname\a.]"
1621 "[Z]#?[n?Zero fill.  If \an\a is given it represents the field width.]"
1622 "\n"
1623 "\n[name[=value]...]\n"
1624 " -f [name...]\n"
1625 "\n"
1626 "[+EXIT STATUS?]{"
1627         "[+0?No errors occurred.]"
1628         "[+>0?An error occurred.]"
1629 "}"
1630 
1631 "[+SEE ALSO?\breadonly\b(1), \bexport\b(1)]"
1632 ;
1633 
1634 const char sh_optulimit[] =
1635 "[-1c?@(#)$Id: ulimit (AT&T Research) 2003-06-21 $\n]"
1636 USAGE_LICENSE
1637 "[+NAME?ulimit - set or display resource limits]"
1638 "[+DESCRIPTION?\bulimit\b sets or displays resource limits.  These "
1639 	"limits apply to the current process and to each child process "
1640 	"created after the resource limit has been set.  If \alimit\a "
1641 	"is specified, the resource limit is set, otherwise, its current value "
1642 	"is displayed on standard output.]"
1643 "[+?Increasing the limit for a resource usually requires special privileges.  "
1644 	"Some systems allow you to lower resource limits and later increase "
1645 	"them.  These are called soft limits.  Once a hard limit is "
1646 	"set the resource can not be increased.]"
1647 "[+?Different systems allow you to specify different resources and some "
1648 	"restrict how much you can raise the limit of the resource.]"
1649 "[+?The value of \alimit\a depends on the unit of the resource listed "
1650 	"for each resource.  In addition, \alimit\a can be \bunlimited\b "
1651 	"to indicate no limit for that resource.]"
1652 "[+?If you do not specify \b-H\b or \b-S\b, then \b-S\b is used for "
1653 	"listing and both \b-S\b and \b-H\b are used for setting resources.]"
1654 "[+?If you do not specify any resource, the default is \b-f\b.]"
1655 "[H?A hard limit is set or displayed.]"
1656 "[S?A soft limit is set or displayed.]"
1657 "[a?Displays all current resource limits]"
1658 "\flimits\f"
1659 "\n"
1660 "\n[limit]\n"
1661 "\n"
1662 "[+EXIT STATUS?]{"
1663 	"[+0?Successful completion.]"
1664 	"[+>0?A request for a higher limit was rejected or an error occurred.]"
1665 "}"
1666 
1667 "[+SEE ALSO?\bulimit\b(2), \bgetrlimit\b(2)]"
1668 ;
1669 
1670 const char sh_optumask[] =
1671 "[-1c?\n@(#)$Id: umask (AT&T Research) 1999-04-07 $\n]"
1672 USAGE_LICENSE
1673 "[+NAME?umask - get or set the file creation mask]"
1674 "[+DESCRIPTION?\bumask\b sets the file creation mask of the current "
1675 	"shell execution environment to the value specified by the "
1676 	"\amask\a operand.  This mask affects the file permission bits "
1677 	"of subsequently created files.  \amask\a can either be an "
1678 	"octal number or a symbolic value as described in \bchmod\b(1).  "
1679 	"If a symbolic value is given, the new file creation mask is the "
1680 	"complement of the result of applying \amask\a to the complement "
1681 	"of the current file creation mask.]"
1682 "[+?If \amask\a is not specified, \bumask\b writes the value of the "
1683 	"file creation mask for the current process to standard output.]"
1684 "[S?Causes the file creation mask to be written or treated as a symbolic value "
1685 	"rather than an octal number.]"
1686 "\n"
1687 "\n[mask]\n"
1688 "\n"
1689 "[+EXIT STATUS?]{"
1690 	"[+0?The file creation mask was successfully changed, or no "
1691 		"\amask\a operand was supplied.]"
1692 	"[+>0?An error occurred.]"
1693 "}"
1694 "[+SEE ALSO?\bchmod\b(1)]"
1695 ;
1696 const char sh_optuniverse[]	= " [name]";
1697 const char sh_optunset[] =
1698 "[-1c?\n@(#)$Id: unset (AT&T Research) 1999-07-07 $\n]"
1699 USAGE_LICENSE
1700 "[+NAME?unset - unset values and attributes of variables and functions]"
1701 "[+DESCRIPTION?For each \aname\a specified, \bunset\b  unsets the variable, "
1702 	"or function if \b-f\b is specified, from the current shell "
1703 	"execution environment.  Readonly variables cannot be unset.]"
1704 "[n?If \aname\a refers to variable that is a reference, the variable \aname\a "
1705 	"will be unset rather than the variable it references.  Otherwise, "
1706 	"is is equivalent to \b-v\b.]"
1707 "[f?\aname\a refers to a function name and the shell will unset the "
1708 	"function definition.]"
1709 "[v?\aname\a refers to a variable name and the shell will unset it and "
1710 	"remove it from the environment.  This is the default behavior.]"
1711 "\n"
1712 "\nname...\n"
1713 "\n"
1714 "[+EXIT STATUS?]{"
1715         "[+0?All \aname\as were successfully unset.]"
1716         "[+>0?One or more \aname\a operands could not be unset "
1717 	"or an error occurred.]"
1718 "}"
1719 
1720 "[+SEE ALSO?\btypeset\b(1)]"
1721 ;
1722 
1723 const char sh_optunalias[] =
1724 "[-1c?\n@(#)$Id: unalias (AT&T Research) 1999-07-07 $\n]"
1725 USAGE_LICENSE
1726 "[+NAME?unalias - remove alias definitions]"
1727 "[+DESCRIPTION?\bunalias\b removes the definition of each named alias "
1728 	"from the current shell execution environment, or all aliases if "
1729 	"\b-a\b is specified.  It will not affect any commands that "
1730 	"have already been read and subsequently executed.]"
1731 "[a?Causes all alias definitions to be removed.  \aname\a operands "
1732 	"are optional and ignored in this case.]"
1733 "\n"
1734 "\nname...\n"
1735 "\n"
1736 "[+EXIT STATUS?]{"
1737         "[+0?Successful completion.]"
1738         "[+>0?\b-a\b was not specified and one or more \aname\a operands "
1739 	"did not have an alias definition, or an error occurred.]"
1740 "}"
1741 
1742 "[+SEE ALSO?\balias\b(1)]"
1743 ;
1744 
1745 const char sh_optwait[]	=
1746 "[-1c?\n@(#)$Id: wait (AT&T Research) 1999-06-17 $\n]"
1747 USAGE_LICENSE
1748 "[+NAME?wait - wait for process or job completion]"
1749 "[+DESCRIPTION?\bwait\b with no operands, waits until all jobs "
1750 	"known to the invoking shell have terminated.  If one or more "
1751 	"\ajob\a operands are specified, \bwait\b waits until all of them "
1752 	"have completed.]"
1753 "[+?Each \ajob\a can be specified as one of the following:]{"
1754 	"[+\anumber\a?\anumber\a refers to a process id.]"
1755 	"[+-\anumber\a?\anumber\a refers to a process group id.]"
1756 	"[+%\anumber\a?\anumber\a refer to a job number.]"
1757 	"[+%\astring\a?Refers to a job whose name begins with \astring\a.]"
1758 	"[+%??\astring\a?Refers to a job whose name contains \astring\a.]"
1759 	"[+%+ \bor\b %%?Refers to the current job.]"
1760 	"[+%-?Refers to the previous job.]"
1761 "}"
1762 "[+?If one ore more \ajob\a operands is a process id or process group id "
1763 	"not known by the current shell environment, \bwait\b treats each "
1764 	"of them as if it were a process that exited with status 127.]"
1765 "\n"
1766 "\n[job ...]\n"
1767 "\n"
1768 "[+EXIT STATUS?If \await\a is invoked with one or more \ajob\as, and all of "
1769 	"them have terminated or were not known by the invoking shell, "
1770 	"the exit status of \bwait\b  will be that of the last \ajob\a.  "
1771 	"Otherwise, it will be one of the following:]{"
1772 	"[+0?\bwait\b utility was invoked with no operands and all "
1773 		"processes known by the invoking process have terminated.]"
1774 	"[+127?\ajob\a is a process id or process group id that is unknown "
1775 		"to the current shell environment.]"
1776 "}"
1777 
1778 "[+SEE ALSO?\bjobs\b(1), \bps\b(1)]"
1779 ;
1780 
1781 #if SHOPT_FS_3D
1782     const char sh_optvpath[]	= " [top] [base]";
1783     const char sh_optvmap[]	= " [dir] [list]";
1784 #endif /* SHOPT_FS_3D */
1785 
1786 const char sh_optwhence[] =
1787 "[-1c?\n@(#)$Id: whence (AT&T Research) 1999-07-07 $\n]"
1788 USAGE_LICENSE
1789 "[+NAME?whence - locate a command and describe its type]"
1790 "[+DESCRIPTION?Without \b-v\b, \bwhence\b writes on standard output an "
1791 	"absolute pathname, if any, corresponding to \aname\a based "
1792 	"on the complete search order that the shell uses.  If \aname\a "
1793 	"is not found, then no output is produced.]"
1794 "[+?If \b-v\b is specified, the output will also contain information "
1795 	"that indicates how the given \aname\a would be interpretted by "
1796 	"the shell in the current execution environment.]"
1797 "[a?Displays all uses for each \aname\a rather than the first.]"
1798 "[f?Do not check for functions.]"
1799 "[p?Do not check to see if \aname\a is a reserved word, a built-in, "
1800 	"an alias, or a function.]"
1801 "[v?For each name you specify, the shell displays a line that indicates "
1802 	"if that name is one of the following:]{"
1803 	"[+?Reserved word]"
1804 	"[+?Alias]"
1805 	"[+?Built-in]"
1806 	"[+?Undefined function]"
1807 	"[+?Function]"
1808 	"[+?Tracked alias]"
1809 	"[+?Program]"
1810 	"[+?Not found]"
1811 "}"
1812 "\n"
1813 "\nname  ...\n"
1814 "\n"
1815 "[+EXIT STATUS?]{"
1816 	"[+0?Each \aname\a was found by the shell.]"
1817 	"[+1?One or more \aname\as were not found by the shell.]"
1818 	"[+>1?An error occurred.]"
1819 "}"
1820 
1821 "[+SEE ALSO?\bcommand\b(1)]"
1822 ;
1823 
1824 
1825 const char e_alrm1[]		= "alarm -r %s +%.3g\n";
1826 const char e_alrm2[]		= "alarm %s %.3f\n";
1827 const char e_baddisc[]		= "%s: invalid discipline function";
1828 const char e_nospace[]		= "out of memory";
1829 const char e_nofork[]		= "cannot fork";
1830 const char e_nosignal[]		= "%s: unknown signal name";
1831 const char e_numeric[]		= "*([0-9])?(.)*([0-9])";
1832 const char e_condition[]	= "condition(s) required";
1833 const char e_cneedsarg[]	= "-c requires argument";
1834