home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume35 / zsh / part09 < prev    next >
Text File  |  1993-02-20  |  56KB  |  1,567 lines

  1. Newsgroups: comp.sources.misc
  2. From: zsh-list@cs.uow.edu.au (The Zsh Mailing List)
  3. Subject: v35i059:  zsh - The Z Shell, version 2.3.1, Part09/22
  4. Message-ID: <1993Feb20.212327.28656@sparky.imd.sterling.com>
  5. X-Md4-Signature: 50d3799c4daf3fbce7f4a0e35ae074ae
  6. Date: Sat, 20 Feb 1993 21:23:27 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: zsh-list@cs.uow.edu.au (The Zsh Mailing List)
  10. Posting-number: Volume 35, Issue 59
  11. Archive-name: zsh/part09
  12. Environment: UNIX
  13. Supersedes: zsh2.2: Volume 29, Issue 97-113
  14.  
  15. #! /bin/sh
  16. # This is a shell archive.  Remove anything before this line, then feed it
  17. # into a shell via "sh file" or similar.  To overwrite existing files,
  18. # type "sh file -c".
  19. # The tool that generated this appeared in the comp.sources.unix newsgroup;
  20. # send mail to comp-sources-unix@uunet.uu.net if you want that tool.
  21. # Contents:  doc/zsh.texi.03 scripts/c2z
  22. # Wrapped by mattson@odin on Sat Feb  6 14:41:53 1993
  23. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  24. echo If this archive is complete, you will see the following message:
  25. echo '          "shar: End of archive 9 (of 22)."'
  26. if test -f 'doc/zsh.texi.03' -a "${1}" != "-c" ; then 
  27.   echo shar: Will not clobber existing file \"'doc/zsh.texi.03'\"
  28. else
  29.   echo shar: Extracting \"'doc/zsh.texi.03'\" \(48882 characters\)
  30.   sed "s/^X//" >'doc/zsh.texi.03' <<'END_OF_FILE'
  31. XAll parameters subsequently defined are automatically exported.
  32. X@cindex history, appending to file
  33. X@pindex APPEND_HISTORY
  34. X@item APPEND_HISTORY
  35. XIf this is set, zsh sessions will append their history list to the
  36. Xhistory file, rather than overwrite it.  Thus, multiple parallel zsh
  37. Xsessions will all have their history lists added to the history file, in
  38. Xthe order they are killed.  @xref{Shell Builtin Commands}, for the
  39. X@code{fc} command.@refill
  40. X@cindex cd, automatic
  41. X@pindex AUTO_CD
  42. X@item AUTO_CD (-J)
  43. XIf a command is not in the hash table, and there exists an executable
  44. Xdirectory by that name, perform the @code{cd} command to that directory.
  45. X@cindex completion, listing choices
  46. X@pindex AUTO_LIST
  47. X@item AUTO_LIST (-9)
  48. XAutomatically list choices on an ambiguous completion.
  49. X@cindex completion, menu, on TAB
  50. X@pindex AUTO_MENU
  51. X@item AUTO_MENU
  52. XAutomatically use menu completion if the @key{TAB} key is pressed
  53. Xrepeatedly.@refill
  54. X@cindex cd, behaving like pushd
  55. X@cindex pushd, making cd behave like
  56. X@pindex AUTO_PUSHD
  57. X@item AUTO_PUSHD (-N)
  58. XMake @code{cd} act like @code{pushd}.
  59. X@cindex slash, removing trailing
  60. X@pindex AUTO_REMOVE_SLASH
  61. X@item AUTO_REMOVE_SLASH
  62. XWhen the last character resulting from a completion is a slash and the next
  63. Xcharacter typed is a word delimiter, remove the slash.
  64. X@cindex jobs, resuming automatically
  65. X@cindex resuming jobs automatically
  66. X@pindex AUTO_RESUME
  67. X@item AUTO_RESUME (-W)
  68. XTreat single word simple commands without redirection as candidates for
  69. Xresumption of an existing job.
  70. X@cindex jobs, background priority
  71. X@cindex background jobs, priority of
  72. X@pindex BGNICE
  73. X@item BGNICE (-6)
  74. XRun all background jobs at a lower priority.  This option is set by
  75. Xdefault.
  76. X@cindex brace expansion, extending
  77. X@cindex expansion, brace, extended
  78. X@pindex BRACECCL
  79. X@item BRACECCL
  80. XAllow brace expansions of the form @code{@{a-zA-Z@}}, etc.
  81. X@cindex cd, to parameter
  82. X@pindex CDABLEVARS
  83. X@item CDABLEVARS (-T)
  84. XIf the argument to a @code{cd} command is not a directory, but a
  85. Xparameter exists by the same name whose value begins with a @code{/},
  86. Xtry to change to the directory specified by the parameter's
  87. Xvalue.@refill
  88. X@cindex links, symbolic
  89. X@cindex symbolic links
  90. X@pindex CHASELINKS
  91. X@item CHASELINKS (-w)
  92. XResolve symbolic links to their true values.
  93. X@cindex correction, spelling
  94. X@cindex spelling correction
  95. X@pindex CORRECT
  96. X@item CORRECT (-0)
  97. XTry to correct the spelling of commands.
  98. X@pindex CORRECT_ALL
  99. X@item CORRECT_ALL (-O)
  100. XTry to correct the spelling of all arguments in a line.
  101. X@cindex csh, loop style
  102. X@cindex loop style, csh
  103. X@pindex CSH_JUNKIE_LOOPS
  104. X@item CSH_JUNKIE_LOOPS
  105. XAllow loop bodies to take the form @samp{@var{list}; end} instead of
  106. X@samp{do @var{list}; done}.
  107. X@cindex csh, quoting style
  108. X@cindex quoting style, csh
  109. X@pindex CSH_JUNKIE_QUOTES
  110. X@item CSH_JUNKIE_QUOTES
  111. XComplain if a quoted expression runs off the end of a line; prevent
  112. Xquoted expressions from containing unescaped newlines.
  113. X@cindex csh, null globbing style
  114. X@cindex null globbing, csh style
  115. X@cindex globbing, null, csh style
  116. X@pindex CSH_NULL_GLOB
  117. X@item CSH_NULL_GLOB
  118. XIf a pattern for filename generation has no matches, delete the pattern
  119. Xfrom the argument list; do not report an error unless all the patterns
  120. Xin a command have no matches.  Overrides @code{NULL_GLOB}.
  121. X@cindex exit status, trapping
  122. X@pindex ERREXIT
  123. X@item ERREXIT (-e)
  124. XIf a command has a non-zero exit status, execute the @code{ERR} trap, if
  125. Xset, and exit.
  126. X@cindex globbing, extended
  127. X@pindex EXTENDED_GLOB
  128. X@item EXTENDED_GLOB
  129. XTreat the @code{#} and @code{^} characters as part of patterns for
  130. Xfilename generation, etc.@refill
  131. X@cindex history, timestamping
  132. X@pindex EXTENDED_HISTORY
  133. X@item EXTENDED_HISTORY
  134. XSave beginning and ending timestamps to the history file.  The format of
  135. Xthese timestamps is @code{:@var{beginning time}:@var{ending
  136. Xtime}:@var{command}}.@refill
  137. X@pindex GLOB_COMPLETE
  138. X@item GLOB_COMPLETE
  139. XLike @code{MENU_COMPLETE}, except that the current word is expanded
  140. Xusing normal shell expansion instead of completion.  If no matches are
  141. Xfound, a @code{*} is added to the end of the word, and expansion is
  142. Xattempted again.@refill
  143. X@cindex globbing, of . files
  144. X@pindex GLOB_DOTS
  145. X@item GLOB_DOTS (-4)
  146. XDo not require a leading @code{.} in a filename to be matched
  147. Xexplicitly.@refill
  148. X@cindex hashing, of commands
  149. X@cindex command hashing
  150. X@pindex HASH_CMDS
  151. X@item HASH_CMDS
  152. XPlace the location of each command in the hash table the first time it
  153. Xis executed.  If this option is unset, no path hashing will be done at
  154. Xall.
  155. X@cindex hashing, of directories
  156. X@cindex directories, hashing
  157. X@pindex HASH_DIRS
  158. X@item HASH_DIRS
  159. XWhenever a command is executed, hash the directory containing it, as
  160. Xwell as all directories that occur earlier in the path.  Has no effect
  161. Xif @code{HASH_CMDS} is unset.
  162. X@pindex HASH_LIST_ALL
  163. X@item HASH_LIST_ALL
  164. XWhenever a command completion is attempted, make sure the entire command
  165. Xpath is hashed first.  This makes the first completion slower.
  166. X@cindex history, ignoring duplicates
  167. X@pindex HIST_IGNORE_DUPS
  168. X@item HIST_IGNORE_DUPS (-h)
  169. XDo not enter command lines into the history list if they are duplicates
  170. Xof the previous event.
  171. X@cindex history, ignoring spaces
  172. X@pindex HIST_IGNORE_SPACE
  173. X@item HIST_IGNORE_SPACE (-g)
  174. XDo not enter command lines into the history list if they begin with a
  175. Xblank.
  176. X@cindex history, storing as literal
  177. X@pindex HIST_LIT
  178. X@item HIST_LIT (-j)
  179. XUse literal (unparsed) versions of the history lines in the editor.
  180. X@pindex HIST_NO_STORE
  181. X@item HIST_NO_STORE
  182. XRemove the @code{history} (@code{fc} @code{-l}) command from the history
  183. Xwhen invoked.
  184. X@cindex history, verifying substitution
  185. X@pindex HIST_VERIFY
  186. X@item HIST_VERIFY
  187. XWhenever the user enters a line with history substitution, don't execute
  188. Xthe line directly; instead, perform history substitution and reload the
  189. Xline into the editing buffer.
  190. X@cindex brace expansion, disabling
  191. X@cindex expansion, brace, disabling
  192. X@cindex disabling brace expansion
  193. X@pindex IGNORE_BRACES
  194. X@item IGNORE_BRACES (-I)
  195. XDo not perform brace expansion.
  196. X@cindex EOF, ignoring
  197. X@pindex IGNOR_EEOF
  198. X@item IGNORE_EOF (-7)
  199. XDo not exit on end-of-file.  Require the use of @code{exit} or
  200. X@code{logout} instead.@refill
  201. X@pindex INTERACTIVE
  202. X@item INTERACTIVE (-i)
  203. XThis is an interactive shell.
  204. X@cindex comments, in interactive shells
  205. X@pindex INTERACTIVE_COMMENTS
  206. X@item INTERACTIVE_COMMENTS (-k)
  207. XAllow comments even in interactive shells.
  208. X@cindex ksh, option printing style
  209. X@cindex option printing, ksh style
  210. X@pindex KSH_OPTION_PRINT
  211. X@item KSH_OPTION_PRINT
  212. XAlters the way options settings are printed.
  213. X@cindex files, marking type of
  214. X@cindex marking file types
  215. X@pindex LIST_TYPES
  216. X@item LIST_TYPES (-X)
  217. XWhen listing files that are possible completions, show the type of each
  218. Xfile with a trailing identifying mark.
  219. X@pindex LOGIN
  220. X@item LOGIN (-l)
  221. XThis is a login shell.
  222. X@cindex jobs, list format
  223. X@cindex list format, of jobs
  224. X@pindex LONG_LIST_JOBS
  225. X@item LONG_LIST_JOBS (-R)
  226. XList jobs in the long format by default.
  227. X@cindex mail, warning of arrival
  228. X@pindex MAIL_WARNING
  229. X@item MAIL_WARNING (-U)
  230. XPrint a warning message if a mail file has been accessed since the shell
  231. Xlast checked.
  232. X@cindex directories, marking
  233. X@cindex marking directories
  234. X@pindex MARK_DIRS
  235. X@item MARK_DIRS (-8)
  236. XAppend a trailing @code{/} to all directory names resulting from filename
  237. Xgeneration (globbing).@refill
  238. X@cindex completion, menu
  239. X@pindex MENU_COMPLETE
  240. X@item MENU_COMPLETE (-Y)
  241. XOn an ambiguous completion, instead of listing possibilities, insert the
  242. Xfirst match.  Then when completion is requested again, remove the first
  243. Xmatch and insert the second match, etc.  When there are no more matches,
  244. Xgo back to the first one again.  @code{reverse-menu-complete} may be
  245. Xused to loop through the list in the other direction.@refill
  246. X@cindex beep, menu completion
  247. X@pindex MENU_COMPLETE_BEEP
  248. X@item MENU_COMPLETE_BEEP
  249. XBeep on an ambiguous menu completion.
  250. X@cindex job control, allowing
  251. X@pindex MONITOR
  252. X@item MONITOR (-m)
  253. XAllow job control.  Set by default in interactive shells.
  254. X@cindex globbing, malformed pattern
  255. X@pindex NO_BAD_PATTERN
  256. X@item NO_BAD_PATTERN (-2)
  257. XIf a pattern for filename generation is badly formed, leave it unchanged
  258. Xin the argument list instead of printing an error.
  259. X@cindex history, disabling substitution
  260. X@cindex disabling history substitution
  261. X@pindex NO_BANG_HIST
  262. X@item NO_BANG_HIST (-K)
  263. XDo not perform textual history substitution.  Do not treat the @code{!}
  264. Xcharacter specially.
  265. X@cindex beep, disabling
  266. X@cindex disabling the beep
  267. X@pindex NO_BEEP
  268. X@item NO_BEEP (-B)
  269. XDo not beep.
  270. X@cindex file clobbering, preventing
  271. X@cindex clobbering, of files
  272. X@pindex NO_CLOBBER
  273. X@item NO_CLOBBER (-1)
  274. XPrevents @code{>} redirection from truncating existing files.  @code{>!}
  275. Xmay be used to truncate a file instead.  Also prevents @code{>>} from
  276. Xcreating files.  @code{>>!} may be used instead.@refill
  277. X@cindex filename substitution, =
  278. X@pindex NO_EQUALS
  279. X@item NO_EQUALS
  280. XDon't perform @code{=} filename substitution.
  281. X@cindex command execution, preventing
  282. X@pindex NO_EXEC
  283. X@item NO_EXEC (-n)
  284. XRead commands and check them for syntax errors, but do not execute them.
  285. X@cindex globbing, disabling
  286. X@cindex disabling globbing
  287. X@pindex NO_GLOB
  288. X@item NO_GLOB (-F)
  289. XDisable filename generation.
  290. X@cindex history, beeping
  291. X@cindex beep, history
  292. X@pindex NO_HIST_BEEP
  293. X@item NO_HIST_BEEP
  294. XDon't beep when an attempt is made to access a history entry which isn't
  295. Xthere.
  296. X@cindex jobs, nohup
  297. X@pindex NO_HUP
  298. X@item NO_HUP
  299. XDon't send the @code{HUP} signal to running jobs when the shell exits.
  300. X@cindex completion, beep on ambiguous
  301. X@cindex beep, ambiguous completion
  302. X@pindex NO_LIST_BEEP
  303. X@item NO_LIST_BEEP
  304. XDon't beep on an ambiguous completion.
  305. X@cindex globbing, no matches
  306. X@pindex NO_NOMATCH
  307. X@item NO_NOMATCH (-3)
  308. XIf a pattern for filename generation has no matches, leave it unchanged
  309. Xin the argument list instead of printing an error.
  310. X@cindex prompt, without CR
  311. X@pindex NO_PROMPT_CR
  312. X@item NO_PROMPT_CR (-V)
  313. XDon't print a carriage return just before printing a prompt in the line
  314. Xeditor.
  315. X@cindex startup files, sourcing
  316. X@pindex NO_RCS
  317. X@item NO_RCS (-f)
  318. XSource only the @file{/etc/zshenv} file.
  319. XDo not source the @file{.zshenv}, @file{/etc/zprofile}, @file{.zprofile},
  320. X@file{/etc/zshrc}, @file{.zshrc}, @file{/etc/zlogin}, @file{.zlogin}, or 
  321. X@file{.zlogout} files.@refill
  322. X@pindex NO_SHORT_LOOPS
  323. X@item NO_SHORT_LOOPS
  324. XDisallow the short forms of @code{for}, @code{select}, @code{if}, and
  325. X@code{function} constructs.@refill
  326. X@cindex background jobs, notification
  327. X@cindex notification of background jobs
  328. X@pindex NOTIFY
  329. X@item NOTIFY (-5)
  330. XReport the status of background jobs immediately, rather than waiting
  331. Xuntil just before printing a prompt.
  332. X@cindex parameters, error on substituting unset
  333. X@cindex unset parameters, error on substituting
  334. X@pindex NO_UNSET
  335. X@item NO_UNSET (-u)
  336. XTreat unset parameters as an error when substituting.
  337. X@cindex globbing, no matches
  338. X@pindex NULL_GLOB
  339. X@item NULL_GLOB (-G)
  340. XIf a pattern for filename generation has no matches, delete the pattern
  341. Xfrom the argument list instead of reporting an error.  Overrides
  342. X@code{NO_NOMATCH}.@refill
  343. X@cindex sorting, numerically
  344. X@pindex NUMERIC_GLOBSORT
  345. X@item NUMERIC_GLOBSORT
  346. XIf numeric filenames are matched by a filename generation pattern, sort
  347. Xthe filenames numerically rather than lexicographically.
  348. X@cindex editor, overstrike mode
  349. X@cindex overstrike mode, of editor
  350. X@pindex OVERSTRIKE
  351. X@item OVERSTRIKE
  352. XStart up the line editor in overstrike mode.
  353. X@cindex path search, extended
  354. X@pindex PATH_DIRS
  355. X@item PATH_DIRS (-Q)
  356. XPerform a path search even on command names with slashes in them.  Thus
  357. Xif @*@samp{/usr/local/bin} is in the user's path, and he types
  358. X@samp{X11/xinit}, the command @samp{/usr/local/bin/X11/xinit} will be
  359. Xexecuted (assuming it exists).@refill
  360. X@cindex exit status, printing
  361. X@pindex PRINT_EXIT_VALUE
  362. X@item PRINT_EXIT_VALUE (-C)
  363. XPrint the exit value of programs with non-zero exit status.
  364. X@cindex directory stack, ignoring dups
  365. X@pindex PUSHD_IGNORE_DUPS
  366. X@item PUSHD_IGNORE_DUPS
  367. XDon't push multiple copies of the same directory onto the directory
  368. Xstack.
  369. X@cindex popd, controlling syntax
  370. X@pindex PUSHD_MINUS
  371. X@item PUSHD_MINUS
  372. X@xref{Shell Builtin Commands}, for the @code{popd} command.
  373. X@cindex directory stack, silencing
  374. X@pindex PUSHD_SILENT
  375. X@item PUSHD_SILENT (-E)
  376. XDo not print the directory stack after @code{pushd} or @code{popd}.
  377. X@cindex pushd, to home
  378. X@pindex PUSHD_TO_HOME
  379. X@item PUSHD_TO_HOME (-D)
  380. XHave @code{pushd} with no arguments act like @code{pushd $HOME}.
  381. X@pindex RC_EXPAND_PARAM
  382. X@item RC_EXPAND_PARAM (-P)
  383. X@xref{Parameter Expansion}.
  384. X@cindex rc, quoting style
  385. X@cindex quoting style, rc
  386. X@pindex RC_QUOTES
  387. X@item RC_QUOTES
  388. XAllow the character sequence @code{''} to signify a single quote within
  389. Xsingly quoted strings.
  390. X@cindex completion, exact matches
  391. X@pindex RECEXACT
  392. X@item RECEXACT (-S)
  393. XIn completion, recognize exact matches even if they are ambiguous.
  394. X@cindex rm *, querying before
  395. X@cindex querying before rm *
  396. X@pindex RMSTARSILENT
  397. X@item RMSTARSILENT (-H)
  398. XDo not query the user before executing @code{rm *} or @code{rm path/*}.
  399. X@pindex SHINSTDIN
  400. X@item SHINSTDIN (-s)
  401. XRead commands from the standard input.
  402. X@cindex sh, word splitting style
  403. X@cindex word splitting, sh style
  404. X@pindex SH_WORD_SPLIT
  405. X@item SH_WORD_SPLIT (-y)
  406. X@xref{Parameter Expansion}.
  407. X@cindex editor, single line mode
  408. X@pindex SINGLE_LINE_ZLE
  409. X@item SINGLE_LINE_ZLE (-M)
  410. XUse single-line command line editing instead of multi-line.
  411. X@cindex sun keyboard, annoying
  412. X@cindex annoying keyboard, sun
  413. X@pindex SUN_KEYBOARD_HACK
  414. X@item SUN_KEYBOARD_HACK (-L)
  415. XIf a line ends with a backquote, and there are an odd number of
  416. Xbackquotes on the line, ignore the trailing backquote.  This is useful
  417. Xon some keyboards where the return key is too small, and the backquote
  418. Xkey lies annoyingly close to it.
  419. X@cindex tracing, of input lines
  420. X@pindex VERBOSE
  421. X@item VERBOSE (-v)
  422. XPrint shell input lines as they are read.
  423. X@cindex tracing, of commands
  424. X@pindex XTRACE
  425. X@item XTRACE (-x)
  426. XPrint commands and their arguments as they are executed.
  427. X@cindex editor, disabling
  428. X@cindex disabling the editor
  429. X@pindex ZLE
  430. X@item ZLE (-Z)
  431. XUse the zsh line editor.
  432. X@end table
  433. X
  434. X@node Shell Builtin Commands, Invocation, Options, Top
  435. X@chapter Shell Builtin Commands
  436. X@cindex builtin commands
  437. X
  438. X@table @code
  439. X@findex .
  440. X@item . @var{file} [ @var{arg} @dots{} ]
  441. XRead and execute commands from @var{file} in the current shell
  442. Xenvironment.  If @var{file} does not contain a slash, the shell looks in
  443. Xthe components of @code{path} to find the directory containing
  444. X@var{file}.  If any arguments @var{arg} are given, they become the
  445. Xpositional parameters; the old positional parameters are restored when
  446. Xthe @var{file} is done executing.  The exit status is the exit status of
  447. Xthe last command executed.@refill
  448. X
  449. X@cindex parameters, expanding
  450. X@cindex expanding parameters
  451. X@item : [ @var{arg} @dots{} ]
  452. XThis command only expands parameters.  A zero exit code is returned.
  453. X
  454. X@cindex alias
  455. X@findex alias
  456. X@item alias [ @code{-g} ] [ @var{name}[=@var{value}]] @dots{}
  457. XWith no arguments, print the list of aliases in the form
  458. X@code{@var{name}=@var{value}} on the standard output.  For each
  459. X@var{name} with a corresponding @var{value}, define an alias with that
  460. Xvalue.  A trailing space in @var{value} causes the next word to be
  461. Xchecked for alias substitution.  If the @code{-g} flag is present,
  462. Xdefine a global alias; global aliases are expanded even if they do not
  463. Xoccur in command position.  For each @var{name} with no @var{value},
  464. Xprint the value of @var{name}, if any.  The exit status is nonzero if a
  465. X@var{name} (with no @var{value}) given for which no alias has been
  466. Xdefined.@refill
  467. X
  468. X@cindex functions, autoloading
  469. X@cindex autoloading functions
  470. X@findex autoload
  471. X@item autoload [ @var{name} @dots{} ]
  472. XFor each of the @var{name}s (which are names of functions), create a
  473. Xfunction marked undefined.  The @code{fpath} variable will be searched
  474. Xto find the actual function definition when the function is first
  475. Xreferenced.@refill
  476. X
  477. X@findex bg
  478. X@item bg [ @var{job} @dots{} ]
  479. X@itemx @var{job} @dots{} @code{&}
  480. XPut each specified @var{job} in the background, or the current job if
  481. Xnone is specified.
  482. X
  483. X@cindex rebinding the keys
  484. X@cindex keys, rebinding
  485. X@findex bindkey
  486. X@item bindkey -mevd
  487. X@itemx bindkey @code{-r} @var{in-string} @dots{}
  488. X@itemx bindkey [ @code{-a} ] @var{in-string} [ @var{command} ] @dots{}
  489. X@itemx bindkey @code{-s} [ @code{-a} ] @var{in-string} @var{out-string} @dots{}
  490. XIf one of the @code{-e}, @code{-v}, or @code{-d} options is given, reset
  491. Xthe keymaps for emacs mode, vi mode, or the default mode, respectively;
  492. Xif the @code{-m} option is also given, allow the use of a meta key.  If
  493. Xthe @code{-r} option is given, remove any binding for each
  494. X@var{in-string}.  If the @code{-s} option is not specified, bind each
  495. X@var{in-string} to a specified @var{command}.  If no @var{command} is
  496. Xspecified, print the binding of @var{in-string} if it is bound, or
  497. Xreturn a nonzero exit code if it is not bound.  If the @code{-s} option
  498. Xis specified, bind each @var{in-string} to each specified
  499. X@var{out-string}.  When @var{in-string} is typed, @var{out-string} will
  500. Xbe pushed back and treated as input to the line editor.  If the
  501. X@code{-a} option is specified, bind the @var{in-string}s in the
  502. Xalternative keymap instead of the standard one.  The alternative keymap
  503. Xis used in vi command mode.@refill
  504. X
  505. X@noindent
  506. XFor either @var{in-string} or @var{out-string}, control characters may
  507. Xbe specified in the form @code{^X}, and the backslash may be used to
  508. Xintroduce one of the following escape sequences:@refill
  509. X
  510. X@table @code
  511. X@item \a
  512. Xbell character
  513. X@item \n
  514. Xlinefeed (newline)
  515. X@item \b
  516. Xbackspace
  517. X@item \t
  518. Xhorizontal tab
  519. X@item \v
  520. Xvertical tab
  521. X@item \f
  522. Xform feed
  523. X@item \r
  524. Xcarriage return
  525. X@item \e
  526. Xescape
  527. X@item \nnn
  528. Xcharacter code in octal
  529. X@item \M-xxx
  530. Xcharacter or escape sequence with meta bit set
  531. X@end table
  532. X
  533. XIn all other cases, @code{\} escapes the following character.  Delete is
  534. Xwritten as @code{^?}.@refill
  535. X
  536. X@cindex loops, exitting
  537. X@cindex exitting loops
  538. X@findex break
  539. X@item break [ @var{n} ]
  540. XExit from an enclosing @code{for}, @code{while}, @code{until},
  541. X@code{select}, or @code{repeat} loop.  If @var{n} is specified, then
  542. Xbreak @var{n} levels instead of just one.@refill
  543. X
  544. X@findex builtin
  545. X@item builtin @var{name} [ @var{args} ] @dots{}
  546. XExecutes the builtin @var{name}, with the given @var{args}.
  547. X
  548. X@findex bye
  549. X@item bye
  550. XSame as @code{exit}.
  551. X
  552. X@cindex directories, changing
  553. X@findex cd
  554. X@item cd [ @var{arg} ]
  555. X@itemx cd @var{old} @var{new}
  556. X@itemx cd +-n
  557. XChange the current directory.  In the first form, change the current
  558. Xdirectory to @var{arg}, or to the value of @code{HOME} if @var{arg} is
  559. Xnot specified.  If @var{arg} is @code{-}, change to the value of
  560. X@code{OLDPWD}, the previous directory.  If a directory named @var{arg}
  561. Xis not found in the current directory and @var{arg} does not begin with
  562. Xa slash, search each component of the shell parameter @code{cdpath}.  If
  563. Xthe option @code{CDABLEVARS} is set, and a parameter named @var{arg}
  564. Xexists whose value begins with a slash, treat its value as the
  565. Xdirectory.@refill
  566. X
  567. X@noindent
  568. XThe second form of @code{cd} substitutes the string @var{new} for the
  569. Xstring @var{old} in the name of the current directory, and tries to
  570. Xchange to this new directory.@refill
  571. X
  572. X@noindent
  573. XThe third form of @code{cd} is equivalent to @code{popd}.
  574. X
  575. X@findex chdir
  576. X@item chdir
  577. XSame as @code{cd}.
  578. X
  579. X@cindex completion, controlling
  580. X@findex compctl
  581. X@item compctl [ -cfhovbCD ] [ -k @var{name} ] [ @var{arg} @dots{} ]
  582. XControl the editor's completion behavior when one of @var{arg} is the
  583. Xcurrent command.  With the @code{-D} flag, control default completion
  584. Xbehavior for commands not assigned any special behavior; with @code{-C},
  585. Xcontrol completion when there is no current command.  The remaining
  586. Xoptions specify the type of command arguments to look for during
  587. Xcompletion.  For example, @samp{compctl -hf rlogin} is equivalent to
  588. X@samp{hostcmds=(rlogin)}.@refill
  589. X
  590. X@table @code
  591. X@item -c
  592. XExpect command names.
  593. X@item -f
  594. XExpect filenames, named directories, and filesystem paths.
  595. X@item -h
  596. XExpect hostnames taken from the @code{$hosts} variable.
  597. X@item -o
  598. XExpect option names.
  599. X@item -v
  600. XExpect variable names.
  601. X@item -b
  602. XExpect key binding names.
  603. X@item -k @var{name}
  604. XExpect names taken from the elements of @code{$name}.
  605. X@end table
  606. X
  607. X@cindex loops, continuing
  608. X@cindex continuing loops
  609. X@findex continue
  610. X@item continue [ @var{num} ]
  611. XResume the next iteration of the enclosing @code{for}, @code{while},
  612. X@code{until}, @code{select}, or @code{repeat} loop.  If @var{n} is
  613. Xspecified, break out of @var{n}-1 loops and resume at the @var{n}th
  614. Xenclosing loop.@refill
  615. X
  616. X@findex declare
  617. X@item declare [ @var{arg} @dots{} ]
  618. XSame as @code{typeset}.
  619. X
  620. X@cindex directory stack, printing
  621. X@findex dirs
  622. X@item dirs [ @code{-v} ] [ @var{arg} @dots{} ]
  623. XWith no arguments, print the contents of the directory stack.  If the
  624. X@code{-v} option is given, number the directories in the stack when
  625. Xprinting.  Directories are added to this stack with the @code{pushd}
  626. Xcommand, and removed with the @code{cd} or @code{popd} commands.  If
  627. Xarguments are specified, load them onto the directory stack, replacing
  628. Xanything that was there, and push the current directory onto the
  629. Xstack.@refill
  630. X
  631. X@cindex disabling commands
  632. X@cindex commands, disabling
  633. X@findex disable
  634. X@item disable @var{arg} @dots{}
  635. XDisable the builtin @var{arg} temporarily.  This allows you to use an
  636. Xexternal command with the same name as a shell builtin.  Actually the
  637. Xsame as @code{unhash}.  Builtins can be enabled with the @code{enable}
  638. Xcommand.@refill
  639. X
  640. X@findex disown
  641. X@item disown @var{job} @dots{}
  642. XRemove the specified jobs from the job table; the shell will no longer
  643. Xreport their status, and will not complain if you try to exit an
  644. Xinteractive shell with them running or stopped.
  645. X
  646. X@findex echo
  647. X@item echo [ @code{-n} ] [ @var{arg} @dots{} ]
  648. XWrite each @var{arg} on the standard output, with a space separating
  649. Xeach one.  If the @code{-n} flag is not present, print a newline at the
  650. Xend.  @code{echo} recognizes the following escape sequences:@refill
  651. X
  652. X@table @code
  653. X@item \b
  654. Xbackspace
  655. X@item \c
  656. Xdon't print an ending newline
  657. X@item \e
  658. Xescape
  659. X@item \f
  660. Xform feed
  661. X@item \n
  662. Xnewline
  663. X@item \r
  664. Xcarriage return
  665. X@item \t
  666. Xhorizontal tab
  667. X@item \v
  668. Xvertical tab
  669. X@item \\
  670. Xbackslash
  671. X@item \xxx
  672. Xcharacter code in octal
  673. X@end table
  674. X
  675. X@cindex termcap string, printing
  676. X@findex echotc
  677. X@item echotc @var{cap} [ @var{arg} @dots{} ]
  678. XOutput the termcap string corresponding to the capability @var{cap},
  679. Xwith optional arguments.@refill
  680. X
  681. X@findex enable
  682. X@item enable @var{arg} @dots{}
  683. XEnable the specified builtin commands, presumably disabled earlier with
  684. X@code{disable}.
  685. X
  686. X@cindex evaluating arguments as commands
  687. X@findex eval
  688. X@item eval [ @var{arg} @dots{} ]
  689. XRead the arguments as input to the shell and execute the resulting
  690. Xcommand(s) in the current shell process.
  691. X
  692. X@pindex IGNORE_EOF, use of
  693. X@findex exit
  694. X@item exit [ @var{n} ]
  695. XExit the shell with the exit code specified by @var{n}; if none is
  696. Xspecified, use the exit code from the last command executed.  An
  697. X@code{EOF} condition will also cause the shell to exit, unless the
  698. X@code{IGNORE_EOF} option is set.@refill
  699. X
  700. X@findex export
  701. X@item export [ @var{name}[=@var{value}] @dots{} ]
  702. XThe specified @var{name}s are marked for automatic export to the
  703. Xenvironment of subsequently executed commands.@refill
  704. X
  705. X@findex false
  706. X@item false
  707. XDo nothing and return an exit code of 1.
  708. X
  709. X@cindex history, editting
  710. X@cindex editting the history
  711. X@findex fc
  712. X@item fc [ -e @var{ename} ] [ -nlrdDfE ] [ @var{old}=@var{new} @dots{} ] [ @var{first} [ @var{last} ]]
  713. X@itemx fc -ARWI [ @var{filename} ]
  714. XSelect a range of commands from @var{first} to @var{last} from the
  715. Xhistory list.  The arguments @var{first} and @var{last} may be specified
  716. Xas a number or as a string.  A negative number is used as an offset to
  717. Xthe current history event number.  A string specifies the most recent
  718. Xevent beginning with the given string.  All substitutions
  719. X@var{old}=@var{new}, if any, are then performed on the commands.  If the
  720. X@code{-l} flag is given, the resulting commands are listed on standard
  721. Xoutput.  Otherwise the editor program @var{ename} is invoked on a file
  722. Xcontaining these history events.  If @var{ename} is not given, the value
  723. Xof the parameter @code{FCEDIT} is used.  If @var{ename} is @code{-}, no
  724. Xeditor is invoked.  When editing is complete, the edited command(s) is
  725. Xexecuted.  If @var{first} is not specified, it will be set to -1 (the
  726. Xmost recent event), or to -16 if the @code{-l} flag is given.  If
  727. X@var{last} is not specified, it will be set to @var{first}, or to -1 if
  728. Xthe @code{-l} flag is given.  The flag @code{-r} reverses the order of
  729. Xthe commands and the flag @code{-n} suppresses command numbers when
  730. Xlisting.  Also when listing, @code{-d} prints timestamps for each
  731. Xcommand, @code{-f} prints full time and date stamps, and @code{-D}
  732. Xprints elapsed times.  Adding the @code{-E} flag causes the dates
  733. Xto be printed in the European format (@var{dd.mm.yyyy}).  With the
  734. X@code{-D} flag, @code{fc} prints elapsed times.@refill
  735. X
  736. X@cindex history, file
  737. X@cindex file, history
  738. X@noindent
  739. X@code{fc -R} reads the history from the given file, @code{fc -W} writes
  740. Xthe history out to the given file, and @code{fc -A} appends the history
  741. Xto the given file.  @code{fc -AI} (@code{-WI}) appends (writes) only
  742. Xthose events that are new since the last incremental append (write) to
  743. Xthe history file.
  744. X
  745. X@findex fg
  746. X@item fg [ @var{job} @dots{} ]
  747. X@itemx @var{job} @dots{}
  748. XBring the specified @var{job}s to the foreground.  If no @var{job} is
  749. Xspecified, use the current job.@refill
  750. X
  751. X@findex functions
  752. X@item functions [ +-tu ] [ @var{name} @dots{} ]
  753. XEquivalent to @code{typeset -f}.
  754. X
  755. X@cindex line, reading
  756. X@cindex reading a line
  757. X@findex getln
  758. X@item getln @var{name} @dots{}
  759. XRead the top value from the buffer stack and put it in the shell
  760. Xparameter @var{name}.  Equivalent to @code{read -zr}.
  761. X
  762. X@cindex options, processing
  763. X@findex getopts
  764. X@item getopts @var{optstring} @var{name} [ @var{arg} @dots{} ]
  765. XChecks @code{arg} for legal options.  If @var{arg} is omitted, use the
  766. Xpositional parameters.  A valid option argument begins with a @code{+}
  767. Xor a @code{-}.  An argument not beginning with a @code{+} or a @code{-},
  768. Xor the argument @code{--}, ends the options.  @var{optstring} contains
  769. Xthe letters that @code{getopts} recognizes.  If a letter is followed by
  770. Xa @code{:}, that option is expected to have an argument.  The options
  771. Xcan be separated from the argument by blanks.@refill
  772. X
  773. X@vindex OPTIND, use of
  774. X@vindex OPTARG, use of
  775. X@noindent
  776. XEach time it is invoked, @code{getopts} places the option letter it
  777. Xfinds in the shell parameter @var{name}, prepended with a @code{+} when
  778. X@var{arg} begins with a @code{+}.  The index of the next @var{arg} is
  779. Xstored in @code{OPTIND}.  The option argument, if any, is stored in
  780. X@code{OPTARG}.@refill
  781. X
  782. X@noindent
  783. XA leading @code{:} in @var{optstring} causes @code{getopts} to store the
  784. Xletter of the invalid option in @code{OPTARG}, and to set @var{name} to
  785. X@code{?} for an unknown option and to @code{:} when a required option is
  786. Xmissing.  Otherwise, @code{getopts} prints an error message.  The exit
  787. Xstatus is nonzero when there are no more options.@refill
  788. X
  789. X@findex hash
  790. X@item hash @var{name} @var{path}
  791. XPuts @var{name} in the command hash table, associating it with the
  792. Xpathname @var{path}.  Whenever @var{name} is used as a command argument,
  793. Xthe shell will try to execute the file given by @var{path}.@refill
  794. X
  795. X@findex history
  796. X@item history [ -nr ] [ @var{first} [ @var{last} ]]
  797. XSame as @code{fc -l}.
  798. X
  799. X@findex integer
  800. X@item integer
  801. XSame as @code{typeset -i}.
  802. X
  803. X@findex jobs
  804. X@item jobs [ -lp ] [ @var{job} @dots{} ]
  805. XLists information about each given job, or all jobs if @var{job} is
  806. Xomitted.  The @code{-l} flag lists process ids, and the @code{-p} flag
  807. Xlists process groups.@refill
  808. X
  809. X@cindex jobs, killing
  810. X@cindex killing jobs
  811. X@findex kill
  812. X@item kill [ -@var{sig} ] @var{job} @dots{}
  813. X@itemx kill @code{-l}
  814. XSends either @code{SIGTERM} or the specified signal to the given jobs or
  815. Xprocesses.  Signals are given by number or by names (with the prefix
  816. X@code{SIG} removed).  If the signal being sent is not @code{KILL} or
  817. X@code{CONT}, then the job will be sent a @code{CONT} signal if it is
  818. Xstopped.  The argument @var{job} can be the process id of a job not in
  819. Xthe job list.  In the second form, @code{kill} @code{-l}, the signal
  820. Xnames are listed.@refill
  821. X
  822. X@findex let
  823. X@item let @var{arg} @dots{}
  824. XEvaluate each @var{arg} as an arithmetic expression.
  825. X@c
  826. X@c Why does the next line cause Info-validate to say "invalid reference"?
  827. X@c
  828. X@xref{Arithmetic Evaluation}, for a description of arithmetic
  829. Xexpressions.  The exit status is 0 if the value of the last expression
  830. Xis nonzero, and 1 otherwise.@refill
  831. X
  832. X@cindex resource limits
  833. X@cindex limits, resource
  834. X@findex limit
  835. X@item limit [ -h ] [ @var{resource} [ @var{limit} ]] @dots{}
  836. X@itemx limit @code{-s}
  837. XLimit the resource consumption of children of the current shell.  If
  838. X@var{limit} is not specified, print the current limit placed on
  839. X@var{resource}; otherwise set the limit to the specified value.  If the
  840. X@code{-h} flag is given, use hard limits instead of soft limits.  If no
  841. X@var{resource} is given, print all limits.@refill
  842. X
  843. X@var{resource} is one of:
  844. X
  845. X@table @code
  846. X@item cputime
  847. XMaximum CPU seconds per process.
  848. X@item filesize
  849. XLargest single file allowed.
  850. X@item datasize
  851. XMaximum data size (including stack) for each process.
  852. X@item stacksize
  853. XMaximum stack size for each process.
  854. X@item coredumpsize
  855. XMaximum size of a core dump.
  856. X@item resident
  857. XMaximum resident set size.
  858. X@item descriptors
  859. XMaximum value for a file descriptor.
  860. X@end table
  861. X
  862. X@var{limit} is a number, with an optional scaling factor, as follows:
  863. X
  864. X@table @code
  865. X@item @var{n}h
  866. Xhours.
  867. X@item @var{n}k
  868. Xkilobytes.  This is the default for all but cputime.
  869. X@item @var{n}m
  870. Xmegabytes or minutes.
  871. X@item @var{mm}:@code{ss}
  872. Xminutes and seconds.
  873. X@end table
  874. X
  875. X@findex local
  876. X@item local
  877. XSame as @code{typeset}.
  878. X
  879. X@cindex users, watching
  880. X@cindex watching users
  881. X@vindex watch, use of
  882. X@findex log
  883. X@item log
  884. XList all users currently logged in who are affected by the current
  885. Xsetting of the @code{watch} parameter.
  886. X
  887. X@findex logout
  888. X@item logout
  889. XExit the shell, if this is a login shell.
  890. X
  891. X@pindex PUSHD_MINUS, use of
  892. X@findex popd
  893. X@item popd [ +-@var{n} ]
  894. XRemoves entries from the directory stack.  With no arguments, removes
  895. Xthe top directory from the stack, and performs a @code{cd} to the new
  896. Xtop directory.  With an argument of the form @code{+@var{n}}, remove the
  897. X@var{n}th entry counting from the left of the list shown by the
  898. X@code{dirs} command, starting with zero, and change to that directory.
  899. XWith an argument of the form @code{-@var{n}}, remove the @var{n}th entry
  900. Xcounting from the right.  If the @code{PUSHD_MINUS} option is set, the
  901. Xmeanings of @code{+} and @code{-} in this context are swapped.@refill
  902. X
  903. X@findex print
  904. X@item print [ -RnrslzpNDP ] [ -u@var{n} ] [ @var{arg} @dots{} ]
  905. XWith no flags or with flag @code{-}, the arguments are printed on the
  906. Xstandard output as described by @code{echo}.@refill
  907. X
  908. X@table @code
  909. X@item -R, -r
  910. Xignore the escape conventions of @code{echo}.  The @code{-R} option
  911. Xwill print all subsequent arguments and options.@refill
  912. X@item -s
  913. Xplace the results in the history list instead of on the standard
  914. Xoutput.@refill
  915. X@item -n
  916. Xdo not add a newline to the output.
  917. X@item -l
  918. Xprint the arguments separated by newlines instead of spaces.
  919. X@item -N
  920. Xprint the arguments separated and terminated by nulls.
  921. X@item -u@var{n}
  922. Xprint the arguments to file descriptor @var{n}.
  923. X@item -p
  924. Xprint the arguments to the input of the coprocess.
  925. X@item -z
  926. Xpush the arguments onto the editing buffer stack, separated by spaces;
  927. Xno escape sequences are recognized.@refill
  928. X@item -D
  929. Xtreat the arguments as directory names, replacing prefixes with @code{~}
  930. Xexpressions, as appropriate.
  931. X@item -P
  932. Xrecognize the same escape sequences as in the @code{PROMPT} parameter.
  933. X@end table
  934. X
  935. X@findex pushd
  936. X@pindex PUSHD_TO_HOME, use of
  937. X@pindex CDABLEVARS, use of
  938. X@pindex PUSHD_SILENT, use of
  939. X@item pushd [ @var{arg} ]
  940. X@itemx pushd @var{old} @var{new}
  941. X@itemx pushd +-@var{n}
  942. XChange the current directory, and push the old current directory onto
  943. Xthe directory stack.  In the first form, change the current directory to
  944. X@var{arg}.  If @var{arg} is not specified, change to the second
  945. Xdirectory on the stack (that is, exchange the top two entries), or
  946. Xchange to the value of @code{HOME} if the @code{PUSHD_TO_HOME} option is
  947. Xset or if there is only one entry on the stack.  If @var{arg} is
  948. X@code{-}, change to the value of @code{OLDPWD}, the previous directory.
  949. XIf a directory named @var{arg} is not found in the current directory and
  950. X@var{arg} does not contain a slash, search each component of the shell
  951. Xparameter @code{cdpath}.  If the option @code{CDABLEVARS} is set, and a
  952. Xparameter named @var{arg} exists whose value begins with a slash, treat
  953. Xits value as the directory.  If the option @code{PUSHD_SILENT} is not
  954. Xset, the directory stack will be printed after a @code{pushd} is
  955. Xperformed.@refill
  956. X
  957. X@noindent
  958. XThe second form of @code{pushd} substitutes the string @var{new} for the
  959. Xstring @var{old} in the name of the current directory, and tries to
  960. Xchange to this new directory.@refill
  961. X
  962. X@noindent
  963. XThe third form of @code{pushd} is equivalent to @code{popd}.
  964. X
  965. X@findex pwd
  966. X@item pwd
  967. XEquivalent to @code{print -R $PWD}.
  968. X
  969. X@findex r
  970. X@item r
  971. XEquivalent to @code{fc -e -}.
  972. X
  973. X@vindex IFS
  974. X@findex read
  975. X@item read [ -rzp ] [ -u@var{n} ] [ @var{name}?@var{prompt} ] [ @var{name} @dots{} ]
  976. XRead one line and break it into fields using the characters in
  977. X@code{IFS} as separators.  In raw mode, @code{-r}, a @code{\} at the end
  978. Xof a line does not signify line continuation.  If the @code{-z} flag is
  979. Xset, read from the editor buffer stack.  The first field is assigned to
  980. Xthe first @var{name}, the second field to the second @var{name}, etc,
  981. Xwith leftover fields assigned to the last @var{name}.  If @var{name} is
  982. Xomitted then @code{REPLY} is used.  If @code{-u@var{n}} is specified,
  983. Xthen input is read from file descriptor @var{n}; if @code{-p} is
  984. Xspecified, then input is read from the coprocess.  The exit status is 0
  985. Xunless end-of-file is encountered.  If the first argument contains a
  986. X@code{?}, the remainder of this word is used as a @var{prompt} on
  987. Xstandard error when the shell is interactive.  The exit status is 0
  988. Xunless an end-of-file is encountered.@refill
  989. X
  990. X@cindex parameters, marking readonly
  991. X@findex readonly
  992. X@item readonly [ @var{name}[=@var{value}]] @dots{}
  993. XThe given @var{names} are marked readonly; these names cannot be changed
  994. Xby subsequent assignment.@refill
  995. X
  996. X@findex rehash
  997. X@item rehash [ @code{-f} ]
  998. XThrow out the command hash table and start over.  If the @code{-f}
  999. Xoption is set, rescan the command path immediately, instead of
  1000. Xrebuilding the hash table incrementally.@refill
  1001. X
  1002. X@cindex functions, returning from
  1003. X@findex return
  1004. X@item return [ @var{n} ]
  1005. XCauses a shell function or @code{.} script to return to the invoking
  1006. Xscript with the return status specified by @var{n}.  If @var{n} is
  1007. Xomitted then the return status is that of the last command
  1008. Xexecuted.@refill
  1009. X
  1010. X@cindex timed execution
  1011. X@cindex execution, timed
  1012. X@findex sched
  1013. X@item sched [+]@var{hh}:@var{mm} @var{command} @dots{}
  1014. X@itemx sched [ -@var{item} ]
  1015. XMake an entry in the scheduled list of commands to execute.  The time
  1016. Xmay be specified in either absolute or relative time.  With no
  1017. Xarguments, prints the list of scheduled commands.  With the argument
  1018. X@code{-@var{item}}, removes the given item from the list.@refill
  1019. X
  1020. X@cindex parameters, positional
  1021. X@cindex parameters, array
  1022. X@cindex array parameter, declaring
  1023. X@findex set
  1024. X@item set [ +-@var{options} ] [ +-o @var{option name} ] @dots{} [ -A @var{name} ] [ @var{arg} ] @dots{}
  1025. XSet the options for the shell and/or set the positional parameters, or
  1026. Xdeclare an array.  @xref{Options}, for the meaning of the flags.  Flags
  1027. Xmay be specified by name using the @code{-o} option.  If the @code{-A}
  1028. Xflag is specified, @var{name} is set to an array containing the given
  1029. X@var{arg}s.  Otherwise the positional parameters are set.  If no
  1030. Xarguments are given, then the names and values of all parameters are
  1031. Xprinted on the standard output.  If the only argument is @code{+}, the
  1032. Xnames of all parameters are printed.@refill
  1033. X
  1034. X@cindex options, setting
  1035. X@findex setopt
  1036. X@item setopt [ +-@var{options} ] [ @var{name} @dots{} ]
  1037. XSet the options for the shell.  All options specified either with flags
  1038. Xor by name are set.  If no arguments are supplied, the names of all
  1039. Xoptions currently set are printed.  In option names, case is
  1040. Xinsignificant, and all underscore characters are ignored.
  1041. X
  1042. X@cindex parameters, positional
  1043. X@findex shift
  1044. X@item shift [ @var{n} ]
  1045. XThe positional parameters from @code{$@var{n}+1} @dots{} are renamed
  1046. X@code{$1}, where @var{n} is an arithmetic expression that defaults to
  1047. X1.@refill
  1048. X
  1049. X@findex source
  1050. X@item source
  1051. XSame as @samp{.}.
  1052. X
  1053. X@cindex shell, suspending
  1054. X@findex suspend
  1055. X@item suspend [ -f ]
  1056. XSuspend the execution of the shell (send it a @code{SIGTSTP}) until it
  1057. Xreceives a @code{SIGCONT}.  If the @code{-f} option is not given,
  1058. Xcomplain if this is a login shell.@refill
  1059. X
  1060. X@findex test
  1061. X@item test @var{arg} @dots{}
  1062. X@itemx [ @var{arg} @dots{} ]
  1063. XLike the system version of @code{test}.  Added for compatibility; use
  1064. Xconditional expressions instead.@refill
  1065. X
  1066. X@cindex shell, timing
  1067. X@cindex timing the shell
  1068. X@findex times
  1069. X@item times
  1070. XPrint the accumulated user and system times for the shell and for
  1071. Xprocesses run from the shell.
  1072. X
  1073. X@cindex signals, trapping
  1074. X@cindex trapping signals
  1075. X@findex trap
  1076. X@item trap [ @var{arg} ] [ @var{sig} ] @dots{}
  1077. X@var{arg} is a command to be read and executed when the shell receives
  1078. X@var{sig}.  Each @var{sig} can be given as a number or as the name of a
  1079. Xsignal.  If @var{arg} is @code{-}, then all traps @var{sig} are reset to
  1080. Xtheir default values.  If @var{arg} is the null string, then this signal
  1081. Xis ignored by the shell and by the commands it invokes.  If @var{sig} is
  1082. X@code{ERR} then @var{arg} will be executed after each command.  If
  1083. X@var{sig} is @code{0} or @code{EXIT} and the @code{trap} statement is
  1084. Xexecuted inside the body of a function, then the command @var{arg} is
  1085. Xexecuted after the function completes.  If @var{sig} is @code{0} or
  1086. X@code{EXIT} and the @code{trap} statement is not executed inside the
  1087. Xbody of a function, then the command @var{arg} is executed when the
  1088. Xshell terminates.  The @code{trap} command with no arguments prints a
  1089. Xlist of commands associated with each signal.@refill
  1090. X
  1091. X@findex true
  1092. X@item true
  1093. XDo nothing and return an exit code of 0.
  1094. X
  1095. X@cindex tty, freezing
  1096. X@findex ttyctl
  1097. X@item ttyctl -fu
  1098. XThe @code{-f} option freezes the tty, and @code{-u} unfreezes it.  When
  1099. Xthe tty is frozen, no changes made to the tty settings by external
  1100. Xprograms will be honored by the shell; the shell will simply reset the
  1101. Xsettings to their previous values as soon as each command exits.  Thus,
  1102. X@code{stty} and similar programs have no effect when the tty is
  1103. Xfrozen.@refill
  1104. X
  1105. X@findex type
  1106. X@item type
  1107. XSame as @code{whence} @code{-v}.
  1108. X
  1109. X@cindex parameters, setting
  1110. X@findex typeset
  1111. X@item typeset [ +-LRZfilrtux [@var{n}]] [ @var{name}[=@var{value}]] @dots{}
  1112. XSet attributes and values for shell parameters.  When invoked inside a
  1113. Xfunction, if @var{name} is not already defined, a new parameter is
  1114. Xcreated which will be unset when the function completes.  The following
  1115. Xattributes are valid:@refill
  1116. X
  1117. X@table @code
  1118. X@item -L
  1119. XLeft justify and remove leading blanks from @var{value}.  If @var{n} is
  1120. Xnonzero, it defines the width of the field; otherwise it is determined
  1121. Xby the width of the value of the first assignment.  When the parameter
  1122. Xis printed, it is filled on the right with blanks or truncated if
  1123. Xnecessary to fit the field.  Leading zeros are removed if the @code{-Z}
  1124. Xflag is also set.@refill
  1125. X@item -R
  1126. XRight justify and fill with leading blanks.  If @var{n} is nonzero if
  1127. Xdefines the width of the field; otherwise it is determined by the width
  1128. Xof the value of the first assignment.  When the parameter is printed,
  1129. Xthe field is left filled with blanks or truncated from the end.@refill
  1130. X@item -Z
  1131. XRight justify and fill with leading zeros if the first non-blank
  1132. Xcharacter is a digit and the @code{-L} flag has not been set.  If
  1133. X@var{n} is nonzero it defines the width of the field; otherwise it is
  1134. Xdetermined by the width of the value of the first assignment.@refill
  1135. X@item -f
  1136. XThe names refer to functions rather than parameters.  No assignments can
  1137. Xbe made, and the only other valid flags are @code{-t} and @code{-u}.
  1138. XThe flag @code{-t} turns on execution tracing for this function.  The
  1139. Xflag @code{-u} causes this function to be marked for autoloading.  The
  1140. X@code{fpath} parameter will be searched to find the function definition
  1141. Xwhen the function is first referenced.@refill
  1142. X@item -i
  1143. XUse an internal integer representation.  If @code{i} is nonzero it
  1144. Xdefines the output arithmetic base, otherwise it is determined by the
  1145. Xfirst assignment.@refill
  1146. X@item -l
  1147. XConvert to lower case.
  1148. X@item -r
  1149. XThe given @var{name}s are marked readonly.
  1150. X@item -t
  1151. XTags the named parameters.  Tags have no special meaning to the
  1152. Xshell.@refill
  1153. X@item -u
  1154. XConvert to upper case.
  1155. X@item -x
  1156. XMark for automatic export to the environment of subsequently executed
  1157. Xcommands.@refill
  1158. X@end table
  1159. X
  1160. X@noindent
  1161. XUsing @code{+} rather than @code{-} causes these flags to be turned off.
  1162. XIf no arguments are given but flags are specified, a list of named
  1163. Xparameters which have these flags set is printed.  Using @code{+}
  1164. Xinstead of @code{-} keeps their values from being printed.  If no
  1165. Xarguments or options are given, the names and attributes of all
  1166. Xparameters are printed.@refill
  1167. X
  1168. X@cindex resource limits
  1169. X@cindex limits, resource
  1170. X@findex ulimit
  1171. X@item ulimit [ -HSacdfmnt ] [ @var{limit} ]
  1172. XSet or display a resource limit.  The value of limit can be a number in
  1173. Xthe unit specified below or the value @code{unlimited}.  The @code{H}
  1174. Xand @code{S} flags specify whether the hard limit or the soft limit for
  1175. Xthe given resource is set.@refill
  1176. X
  1177. X@table @code
  1178. X@item -a
  1179. XLists all of the current resource limits.
  1180. X@item -c
  1181. XThe number of 512-byte blocks on the size of core dumps.
  1182. X@item -d
  1183. XThe number of K-bytes on the size of the data segment.
  1184. X@item -f
  1185. XThe number of 512-byte blocks on the size of files written.
  1186. X@item -m
  1187. XThe number of K-bytes on the size of physical memory.
  1188. X@item -n
  1189. XThe number of file descriptors.
  1190. X@item -s
  1191. XThe number of K-bytes on the size of the stack.
  1192. X@item -t
  1193. XThe number of CPU seconds to be used.
  1194. X@end table
  1195. X
  1196. X@cindex umask
  1197. X@findex umask
  1198. X@item umask [ @var{mask} ]
  1199. XThe umask is set to @var{mask}.  @var{mask} can be either an octal
  1200. Xnumber or a symbolic value as described in @code{chmod(1)}.  If
  1201. X@var{mask} is omitted, the current value is printed.@refill
  1202. X
  1203. X@cindex aliases, removing
  1204. X@findex unalias
  1205. X@item unalias @var{name} @dots{}
  1206. XThe alias definition, if any, for each @var{name} is removed.
  1207. X
  1208. X@cindex functions, removing
  1209. X@findex unfunction
  1210. X@item unfunction @var{name} @dots{}
  1211. XThe function definition, if any, for each @var{name} is removed.
  1212. X
  1213. X@findex unhash
  1214. X@item unhash @var{name} @dots{}
  1215. XThe entry in the command hash table, if any, for each @var{name} is
  1216. Xremoved.@refill
  1217. X
  1218. X@cindex limits, resource
  1219. X@cindex resource limits
  1220. X@findex unlimit
  1221. X@item unlimit [ -h ] @var{resource} @dots{}
  1222. XThe resource limit for each @var{resource} is set to the hard limit.  If
  1223. Xthe @code{-h} flag is given and the shell is running as root, the hard
  1224. Xresource limit for each @var{resource} is removed.@refill
  1225. X
  1226. X@cindex parameters, unsetting
  1227. X@findex unset
  1228. X@item unset @var{name} @dots{}
  1229. XEach named parameter is unset.
  1230. X
  1231. X@cindex options, unsetting
  1232. X@findex unsetopt
  1233. X@item unsetopt [ +-@var{options} ] [ @var{name} @dots{} ]
  1234. XUnset the options for the shell.  All options specified either with
  1235. Xflags or by name are unset.@refill
  1236. X
  1237. X@cindex parameters, editting
  1238. X@cindex editting parameters
  1239. X@findex vared
  1240. X@item vared @var{name}
  1241. XThe value of the parameter @var{name} is loaded into the edit buffer,
  1242. Xand the line editor is invoked.  When the editor exits, @var{name} is
  1243. Xset to the string value returned by the editor.@refill
  1244. X
  1245. X@cindex jobs, waiting for
  1246. X@cindex waiting for jobs
  1247. X@findex wait
  1248. X@item wait [ @var{job} @dots{} ]
  1249. XWait for the specified jobs or processes.  If @var{job} is not given
  1250. Xthen all currently active child processes are waited for.  Each
  1251. X@var{job} can be either a job specification or the process-id of a job
  1252. Xin the job table.  The exit status from this command is that of the job
  1253. Xwaited for.@refill
  1254. X
  1255. X@findex whence
  1256. X@item whence [ -acpv ] @var{name} @dots{}
  1257. XFor each name, indicate how it would be interpreted if used as a command
  1258. Xname.  The @code{-v} flag produces a more verbose report.  The @code{-p}
  1259. Xflag does a path search for @var{name} even if it is a shell function,
  1260. Xalias, or reserved word.  The @code{-c} flag prints the results in a
  1261. Xcsh-like format.  The @code{-a} flag does a search for all occurences of
  1262. X@var{name} throughout the command path.@refill
  1263. X
  1264. X@findex which
  1265. X@item which
  1266. XSame as @code{whence -c}.
  1267. X@end table
  1268. X
  1269. X@node Invocation, Wrapping Up, Shell Builtin Commands, Top
  1270. X@chapter Invocation
  1271. X@cindex invocation
  1272. X
  1273. X@code{zsh [ +-@var{options} ] [ +-o @var{option} ] @dots{}  [ -c @var{string} ] [ @var{arg} @dots{} ]}
  1274. X
  1275. X@pindex NO_RCS, use of
  1276. X@cindex files, startup
  1277. X@cindex startup files
  1278. X@noindent
  1279. XCommands are first read from @file{/etc/zshenv}.  Then, if the
  1280. X@code{NO_RCS} option is unset, commands are read from
  1281. X@file{$ZDOTDIR/.zshenv} (if @code{ZDOTDIR} is unset, @code{HOME} is used
  1282. Xinstead).  If the first character of argument zero passed to the shell is 
  1283. X@code{-}, or if the @code{-l} flag is present, then
  1284. Xthe shell is assumed to be a login shell, and commands are read from
  1285. X@file{/etc/zprofile} and then @file{$ZDOTDIR/.zprofile}.
  1286. XThen, if the shell is interactive and the @code{NO_RCS} option is unset,
  1287. Xcommands are read from @file{/etc/zshrc} and then @file{$ZDOTDIR/.zshrc}.
  1288. XFinally, if the shell is a login shell, @file{/etc/zlogin} and 
  1289. X@file{$ZDOTDIR/.zlogin} are read.@refill
  1290. X
  1291. XIf the @code{NO_RCS} option is set within @file{/etc/zshenv}, then only
  1292. X@file{/etc/zprofile}, @file{/etc/zshrc}, and @file{/etc/zlogin} are read,
  1293. Xand the @code{$ZDOTDIR} files are skipped.  If the @code{-f} flag is present,
  1294. Xonly @file{/etc/zshenv} is read, and all other initialization files are 
  1295. Xskipped.
  1296. X
  1297. XIf the @code{-s} flag is not present and an argument is given,
  1298. Xthe first argument is taken to be the pathname of a script to execute.
  1299. XThe remaining arguments are assigned to the positional parameters.  The
  1300. Xfollowing flags are interpreted by the shell when invoked:@refill
  1301. X
  1302. X@cindex flags, shell
  1303. X@cindex shell flags
  1304. X@table @code
  1305. X@item -c @var{string}
  1306. XRead commands from @var{string}.
  1307. X@item -s
  1308. XRead command from the standard input.
  1309. X@item -i
  1310. XIf this flag is present or the shell input and output are attached to a
  1311. Xterminal, this shell is interactive.
  1312. X@end table
  1313. X
  1314. X@node Wrapping Up, Concept Index, Invocation, Top
  1315. X@chapter Wrapping Up
  1316. X
  1317. X@menu
  1318. X* See Also::                    
  1319. X* Files Used::                  
  1320. X* Availability::                
  1321. X* Undocumented Features::       
  1322. X@end menu
  1323. X
  1324. X@node See Also, Files Used,  , Wrapping Up
  1325. X@section See Also
  1326. X
  1327. X@noindent
  1328. Xsh(1), csh(1), tcsh(1), itcsh(1), rc(1), bash(1), ash(1), ksh(1),
  1329. Xclam(1), strftime(3).
  1330. X
  1331. X@node Files Used, Availability, See Also, Wrapping Up
  1332. X@section Files Used
  1333. X@cindex files used
  1334. X
  1335. X@noindent
  1336. X$ZDOTDIR/.zshenv@*
  1337. X@noindent
  1338. X$ZDOTDIR/.zprofile@*
  1339. X@noindent
  1340. X$ZDOTDIR/.zshrc@*
  1341. X@noindent
  1342. X$ZDOTDIR/.zlogin@*
  1343. X@noindent
  1344. X$ZDOTDIR/.zlogout@*
  1345. X@noindent
  1346. X/tmp/zsh*@*
  1347. X@noindent
  1348. X/etc/zshenv@*
  1349. X@noindent
  1350. X/etc/zprofile@*
  1351. X@noindent
  1352. X/etc/zshrc@*
  1353. X@noindent
  1354. X/etc/zlogin
  1355. X
  1356. X@node Availability, Undocumented Features, Files Used, Wrapping Up
  1357. X@section Availability
  1358. X@cindex availability
  1359. X
  1360. X@noindent
  1361. XThe latest official release of zsh is available via anonymous ftp from
  1362. X@code{cs.ucsd.edu} (132.239.51.3), in the directory
  1363. X@code{pub/zsh}.  The beta release of zsh 2.4 is available from
  1364. X@code{carlo.phys.uva.nl} (145.18.220.25), in the directory
  1365. X@code{pub/bas/zsh}.  This man page is current to zsh 2.3.1.@refill
  1366. X
  1367. X@node Undocumented Features,  , Availability, Wrapping Up
  1368. X@section Undocumented Features
  1369. X@cindex undocumented features
  1370. X
  1371. X@noindent
  1372. XKnown only to the recipients of the zsh mailing list,
  1373. X@code{zsh-list@@cs.uow.edu.au}.  If you run into problems, please send
  1374. Xyour questions and patches to the mailing list.  To join the list, send
  1375. Xemail to @code{zsh-request@@cs.uow.edu.au}.@refill
  1376. X
  1377. X
  1378. X@node Concept Index, Variables Index, Wrapping Up, Top
  1379. X@unnumbered Concept Index
  1380. X
  1381. X@printindex cp
  1382. X
  1383. X@node Variables Index, Options Index, Concept Index, Top
  1384. X@unnumbered Variables Index
  1385. X
  1386. X@printindex vr
  1387. X
  1388. X@node Options Index, Functions Index, Variables Index, Top
  1389. X@unnumbered Options Index
  1390. X
  1391. X@printindex pg
  1392. X
  1393. X@node Functions Index, Editor Functions Index, Options Index, Top
  1394. X@unnumbered Functions Index
  1395. X
  1396. X@printindex fn
  1397. X
  1398. X@node Editor Functions Index, Keystroke Index, Functions Index, Top
  1399. X@unnumbered Editor Functions Index
  1400. X
  1401. X@printindex tp
  1402. X
  1403. X@node Keystroke Index,  , Editor Functions Index, Top
  1404. X@unnumbered Keystroke Index
  1405. X
  1406. X@printindex ky
  1407. X
  1408. X
  1409. X@contents
  1410. X@bye
  1411. END_OF_FILE
  1412.   if test 48882 -ne `wc -c <'doc/zsh.texi.03'`; then
  1413.     echo shar: \"'doc/zsh.texi.03'\" unpacked with wrong size!
  1414.   fi
  1415.   # end of 'doc/zsh.texi.03'
  1416. fi
  1417. if test -f 'scripts/c2z' -a "${1}" != "-c" ; then 
  1418.   echo shar: Will not clobber existing file \"'scripts/c2z'\"
  1419. else
  1420.   echo shar: Extracting \"'scripts/c2z'\" \(3299 characters\)
  1421.   sed "s/^X//" >'scripts/c2z' <<'END_OF_FILE'
  1422. X#! /bin/sh
  1423. X#
  1424. X# c2z - environment conversion tool
  1425. X# Contributed by Bart Schaefer
  1426. X# (Tweaked a bit by Paul Falstad)
  1427. X#
  1428. X# This is a quick script to convert csh aliases to zsh aliases/functions.
  1429. X# It also converts the csh environment and local variables to zsh.  c2z
  1430. X# uses the csh to parse its own dot-files, then processes csh output to
  1431. X# convert the csh settings to zsh.
  1432. X#
  1433. X# When run as a zsh fuction, c2z runs csh as if it were an interactive
  1434. X# shell whenever the parent zsh is interactive.  When run as a shell
  1435. X# script, the -i switch can be used to force this behavior.
  1436. X#
  1437. X# The -l (login) switch causes csh to run as if it were a login shell.
  1438. X# This is done "properly" if c2z is used as a zsh function, otherwise
  1439. X# it's faked by explicitly sourcing .login.  Use with caution if your
  1440. X# .login initializes an X server or does other one-time-only startup
  1441. X# procedures.
  1442. X#
  1443. X# usage:
  1444. X#    c2z [-i] [-l]
  1445. X#
  1446. X# You can use this script in your .zshrc or .zlogin files to load your
  1447. X# regular csh environment into zsh; for example, in .zlogin:
  1448. X#
  1449. X#    . =(c2z -l)
  1450. X#
  1451. X# This is not perfect, but it gets most common aliases and variables.
  1452. X# It's also rather time-consuming to do this every time you log in.
  1453. X# However, if you're moving from csh to zsh for the first time, this
  1454. X# can get you started with a familiar environment right away.
  1455. X#
  1456. X# In case your mailer eats tabs, $T is set to expand to a tab.
  1457. X#
  1458. XT="`echo x | tr x '\011'`"
  1459. X
  1460. X# If we're zsh, we can run "- csh" to get the complete environment.
  1461. X#
  1462. XMINUS=""
  1463. XLOGIN=""
  1464. XINTERACT=""
  1465. Xcase "$VERSION" in
  1466. Xzsh*)
  1467. X    case $1 in
  1468. X    -l*) MINUS="-" ;;
  1469. X    -i*) INTERACT="-i" ;;
  1470. X    esac
  1471. X    if [[ -o INTERACTIVE ]]; then INTERACT="-i"; fi
  1472. X    setopt nobanghist
  1473. X    ;;
  1474. X*)
  1475. X    case $1 in
  1476. X    -l*) LOGIN="source ~/.login" ;;
  1477. X    -i*) INTERACT="-i" ;;
  1478. X    esac
  1479. X    ;;
  1480. Xesac
  1481. X
  1482. X( eval $MINUS csh $INTERACT ) <<EOF 2>&1 >/dev/null
  1483. X$LOGIN
  1484. Xalias >! /tmp/cz$$.a
  1485. Xsetenv >! /tmp/cz$$.e
  1486. Xset >! /tmp/cz$$.v
  1487. XEOF
  1488. X
  1489. X# save stdin
  1490. Xexec 9<&0
  1491. X
  1492. X# First convert aliases
  1493. Xexec < /tmp/cz$$.a
  1494. X
  1495. X# Taken straight from ctoz except for $T and "alias --"
  1496. Xsed -e 's/'"$T"'(\(.*\))/'"$T"'\1/' >/tmp/cz$$.1
  1497. Xgrep ! /tmp/cz$$.1 >/tmp/cz$$.2
  1498. Xgrep -v ! /tmp/cz$$.1 >/tmp/cz$$.3
  1499. Xsed -e "s/'/'"\\\\"''"/g \
  1500. X    -e 's/^\([^'"$T"']*\)'"$T"'\(.*\)$/alias -- \1='"'\2'/" \
  1501. X    /tmp/cz$$.3
  1502. Xsed -e 's/![:#]*/$/g' \
  1503. X    -e 's/^\([^'"$T"']*\)'"$T"'\(.*\)$/\1 () { \2 }/' \
  1504. X    /tmp/cz$$.2
  1505. X
  1506. X# Next, convert environment variables
  1507. Xexec < /tmp/cz$$.e
  1508. X
  1509. X# Would be nice to deal with embedded newlines, e.g. in TERMCAP, but ...
  1510. Xsed -e '/^SHLVL/d' \
  1511. X    -e "s/'/'"\\\\"''"/g \
  1512. X    -e "s/^\([A-Za-z0-9_]*=\)/export \1'/" \
  1513. X    -e "s/$/'/"
  1514. X
  1515. X# Finally, convert local variables
  1516. Xexec < /tmp/cz$$.v
  1517. X
  1518. Xsed -e 's/'"$T"'/=/' \
  1519. X    -e "s/'/'"\\\\"''"/g \
  1520. X    -e '/^[A-Za-z0-9_]*=[^(]/{
  1521. X    s/=/='"'/"'
  1522. X    s/$/'"'/"'
  1523. X    }' |
  1524. Xsed -e '/^argv=/d' -e '/^cwd=/d' -e '/^filec=/d' -e '/^status=/d' \
  1525. X     -e '/^histchars=/s//HISTCHARS=/' \
  1526. X     -e '/^history=/s//HISTSIZE=/' \
  1527. X     -e '/^home=/s//HOME=/' \
  1528. X     -e '/^ignoreeof=/s/.*/setopt ignoreeof/' \
  1529. X     -e '/^noclobber=/s/.*/setopt noclobber/' \
  1530. X     -e '/^notify=/d' \
  1531. X     -e '/^showdots=/s/.*/setopt globdots/' \
  1532. X    -e '/^savehist=/s//HISTFILE=\~\/.zhistory SAVEHIST=/' \
  1533. X     -e '/^autolist=/s/.*/setopt autolist/' \
  1534. X     -e '/^correct=[cmd]*/s//setopt autocorrect/' \
  1535. X     -e '/^who=/s//WATCHFMT=/'
  1536. X
  1537. X
  1538. Xexec 0<&9
  1539. X
  1540. Xrm /tmp/cz$$.?
  1541. Xexit
  1542. END_OF_FILE
  1543.   if test 3299 -ne `wc -c <'scripts/c2z'`; then
  1544.     echo shar: \"'scripts/c2z'\" unpacked with wrong size!
  1545.   fi
  1546.   chmod +x 'scripts/c2z'
  1547.   # end of 'scripts/c2z'
  1548. fi
  1549. echo shar: End of archive 9 \(of 22\).
  1550. cp /dev/null ark9isdone
  1551. MISSING=""
  1552. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ; do
  1553.     if test ! -f ark${I}isdone ; then
  1554.     MISSING="${MISSING} ${I}"
  1555.     fi
  1556. done
  1557. if test "${MISSING}" = "" ; then
  1558.     echo You have unpacked all 22 archives.
  1559.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1560. else
  1561.     echo You still must unpack the following archives:
  1562.     echo "        " ${MISSING}
  1563. fi
  1564. exit 0
  1565.  
  1566. exit 0 # Just in case...
  1567.