mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-30 17:50:58 +01:00 
			
		
		
		
	exec now won't find precommand modifiers after it with the option set. This may need further attention.
		
			
				
	
	
		
			2842 lines
		
	
	
	
		
			128 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			2842 lines
		
	
	
	
		
			128 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| texinode(Shell Builtin Commands)(Zsh Line Editor)(Options)(Top)
 | |
| chapter(Shell Builtin Commands)
 | |
| ifzman(\
 | |
| sect(Shell Builtin Commands)
 | |
| )\
 | |
| def(prefix)(1)(\
 | |
| item(tt(ARG1) var(simple command))(
 | |
| See ifzman(the section `Precommand Modifiers' in zmanref(zshmisc))\
 | |
| ifnzman(noderef(Precommand Modifiers)).
 | |
| )\
 | |
| )\
 | |
| def(alias)(2)(\
 | |
| findex(ARG1)
 | |
| item(tt(ARG1))(
 | |
| Same as tt(ARG2).
 | |
| )\
 | |
| )\
 | |
| def(module)(2)(\
 | |
| item(tt(ARG1))(
 | |
| See ifzman(the section `The ARG2 Module' in zmanref(zshmodules))\
 | |
| ifnzman(noderef(The ARG2 Module)).
 | |
| )\
 | |
| )\
 | |
| def(zlecmd)(1)(\
 | |
| item(tt(ARG1))(
 | |
| See ifzman(the section `Zle Builtins' in zmanref(zshzle))\
 | |
| ifnzman(noderef(Zle Builtins)).
 | |
| )\
 | |
| )\
 | |
| 
 | |
| cindex(builtin commands)
 | |
| cindex(commands, builtin)
 | |
| Some shell builtin commands take options as described in individual
 | |
| entries; these are often referred to in the list below as `tt(flags)' to
 | |
| avoid confusion with shell options, which may also have an effect on the
 | |
| behaviour of builtin commands.  In this introductory section,
 | |
| `tt(option)' always has the meaning of an option to a command that should
 | |
| be familiar to most command line users.
 | |
| 
 | |
| Typically, options are single letters preceded by a hyphen (tt(-)).
 | |
| Options that take an argument accept it either immediately following the
 | |
| option letter or after white space, for example `tt(print -C3 *)' or
 | |
| `tt(print -C 3 *)' are equivalent.  Arguments to options are not the
 | |
| same as arguments to the command; the documentation indicates which is
 | |
| which.  Options that do not take an argument may be combined in a single
 | |
| word, for example `tt(print -ca *)' and `tt(print -c -a *)' are
 | |
| equivalent.
 | |
| 
 | |
| Some shell builtin commands also take options that begin with `tt(+)'
 | |
| instead of `tt(-)'.  The list below makes clear which commands these
 | |
| are.
 | |
| 
 | |
| Options (together with their individual arguments, if any) must appear
 | |
| in a group before any non-option arguments; once the first non-option
 | |
| argument has been found, option processing is terminated.
 | |
| 
 | |
| All builtin commands other than precommand modifiers, even those that
 | |
| have no options, can be given the argument `tt(-)tt(-)' to terminate option
 | |
| processing.  This indicates that the following words are non-option
 | |
| arguments, but is otherwise ignored.  This is useful in cases where
 | |
| arguments to the command may begin with `tt(-)'.  For historical
 | |
| reasons, most builtin commands also recognize a single `tt(-)' in a
 | |
| separate word for this purpose; note that this is less standard and
 | |
| use of `tt(-)tt(-)' is recommended.
 | |
| 
 | |
| startitem()
 | |
| prefix(-)
 | |
| findex(.)
 | |
| item(tt(.) var(file) [ var(arg) ... ])(
 | |
| Read commands from var(file) and execute them in the current shell
 | |
| environment.
 | |
| 
 | |
| If var(file) does not contain a slash, or if tt(PATH_DIRS) is set,
 | |
| the shell looks in the components of tt($path) to find the directory
 | |
| containing var(file).  Files in the current directory are not read
 | |
| unless `tt(.)' appears somewhere in tt($path).  If a file named
 | |
| `var(file)tt(.zwc)' is found, is newer than var(file), and is the
 | |
| compiled form (created with the tt(zcompile) builtin) of var(file),
 | |
| then commands are read from that file instead of var(file).
 | |
| 
 | |
| If any arguments var(arg) are given,
 | |
| they become the positional parameters; the old positional
 | |
| parameters are restored when the var(file) is done executing.
 | |
| However, if no arguments are given,
 | |
| the positional parameters remain those of the calling context,
 | |
| and no restoring is done.
 | |
| 
 | |
| If var(file) was not found the return status is 127; if var(file) was found
 | |
| but contained a syntax error the return status is 126; else the return
 | |
| status is the exit status of the last command executed.
 | |
| )
 | |
| findex(NOTRANS(:))
 | |
| cindex(expanding parameters)
 | |
| cindex(parameters, expanding)
 | |
| cindex(doing nothing)
 | |
| item(tt(:) [ var(arg) ... ])(
 | |
| This command does nothing, although normal argument expansions is performed
 | |
| which may have effects on shell parameters.  A zero exit status is returned.
 | |
| )
 | |
| findex(alias)
 | |
| cindex(aliases, defining)
 | |
| cindex(aliases, listing)
 | |
| item(tt(alias) [ {tt(PLUS())|tt(-)}tt(gmrsL) ] [ var(name)[tt(=)var(value)] ... ])(
 | |
| For each var(name) with a corresponding var(value), define an alias
 | |
| with that value.  A trailing space in var(value) causes the next word
 | |
| to be checked for alias expansion.  If the tt(-g) flag is present,
 | |
| define a global alias; global aliases are expanded even if they do not
 | |
| occur in command position.
 | |
| 
 | |
| If the tt(-s) flag is present, define a suffix alias: if the command
 | |
| word on a command line is in the form `var(text)tt(.)var(name)', where
 | |
| var(text) is any non-empty string, it is replaced by the text
 | |
| `var(value) var(text)tt(.)var(name)'.  Note that var(name) is treated as
 | |
| a literal string, not a pattern.  A trailing space in var(value) is not
 | |
| special in this case.  For example,
 | |
| 
 | |
| example(alias -s ps=gv)
 | |
| 
 | |
| will cause the command `tt(*.ps)' to be expanded to `tt(gv *.ps)'.  As
 | |
| alias expansion is carried out earlier than globbing, the `tt(*.ps)' will
 | |
| then be expanded.  Suffix aliases constitute a different name space from
 | |
| other aliases (so in the above example it is still possible
 | |
| to create an alias for the command tt(ps)) and the two sets are never
 | |
| listed together.
 | |
| 
 | |
| For each var(name) with no var(value),
 | |
| print the value of var(name), if any.  With no arguments, print all
 | |
| currently defined aliases other than suffix aliases.  If the tt(-m) flag
 | |
| is given the arguments are taken as patterns (they should be quoted to
 | |
| preserve them from being interpreted as glob patterns), and the aliases
 | |
| matching these patterns are printed.  When printing aliases and one of
 | |
| the tt(-g), tt(-r) or tt(-s) flags is present, restrict the printing to
 | |
| global, regular or suffix aliases, respectively; a regular alias is one
 | |
| which is neither a global nor a suffix alias.   Using `tt(PLUS())'
 | |
| instead of `tt(-)', or ending the option list with a single
 | |
| `tt(PLUS())', prevents the values of the aliases from being printed.
 | |
| 
 | |
| If the tt(-L) flag is present, then print each
 | |
| alias in a manner suitable for putting in a startup script.  The exit
 | |
| status is nonzero if a var(name) (with no var(value)) is given for
 | |
| which no alias has been defined.
 | |
| 
 | |
| For more on aliases, include common problems, see
 | |
| ifzman(the section ALIASING in zmanref(zshmisc))\
 | |
| ifnzman(noderef(Aliasing)).
 | |
| )
 | |
| findex(autoload)
 | |
| cindex(functions, autoloading)
 | |
| cindex(autoloading functions)
 | |
| item(tt(autoload) [ {tt(PLUS())|tt(-)}tt(RTUXdkmrtWz) ] [ tt(-w) ] [ var(name) ... ])(
 | |
| vindex(fpath, searching)
 | |
| See the section `Autoloading Functions' in ifzman(zmanref(zshmisc))\
 | |
| ifnzman(noderef(Functions)) for full details.  The tt(fpath) parameter
 | |
| will be searched to find the function definition when the function is
 | |
| first referenced.
 | |
| 
 | |
| If var(name) consists of an absolute path, the function is defined to
 | |
| load from the file given (searching as usual for dump files in the given
 | |
| location).  The name of the function is the basename (non-directory
 | |
| part) of the file.  It is normally an error if the function is not found
 | |
| in the given location; however, if the option tt(-d) is given, searching
 | |
| for the function defaults to tt($fpath).  If a function is loaded by
 | |
| absolute path, any functions loaded from it that are marked for
 | |
| tt(autoload) without an absolute path have the load path of the parent
 | |
| function temporarily prepended to tt($fpath).
 | |
| 
 | |
| If the option tt(-r) or tt(-R) is given, the function is searched for
 | |
| immediately and the location is recorded internally for use when the
 | |
| function is executed; a relative path is expanded using the value of
 | |
| tt($PWD).  This protects against a change to tt($fpath) after the call
 | |
| to tt(autoload).  With tt(-r), if the function is not found, it is
 | |
| silently left unresolved until execution; with tt(-R), an error message
 | |
| is printed and command processing aborted immediately the search fails,
 | |
| i.e. at the tt(autoload) command rather than at function execution..
 | |
| 
 | |
| The flag tt(-X) may be used only inside a shell function.  It causes the
 | |
| calling function to be marked for autoloading and then immediately
 | |
| loaded and executed, with the current array of positional parameters as
 | |
| arguments.  This replaces the previous definition of the function.  If
 | |
| no function definition is found, an error is printed and the function
 | |
| remains undefined and marked for autoloading.  If an argument is given,
 | |
| it is used as a directory (i.e. it does not include the name of the
 | |
| function) in which the function is to be found; this may be combined
 | |
| with the tt(-d) option to allow the function search to default to tt($fpath)
 | |
| if it is not in the given location.
 | |
| 
 | |
| The flag tt(+X) attempts to load each var(name) as an autoloaded function,
 | |
| but does em(not) execute it.  The exit status is zero (success) if the
 | |
| function was not previously defined em(and) a definition for it was found.
 | |
| This does em(not) replace any existing definition of the function.  The
 | |
| exit status is nonzero (failure) if the function was already defined or
 | |
| when no definition was found.  In the latter case the function remains
 | |
| undefined and marked for autoloading.  If ksh-style autoloading is
 | |
| enabled, the function created will contain the contents of the file
 | |
| plus a call to the function itself appended to it, thus giving normal
 | |
| ksh autoloading behaviour on the first call to the function.
 | |
| If the tt(-m) flag is also given each var(name) is treated as a
 | |
| pattern and all functions already marked for autoload that match the
 | |
| pattern are loaded.
 | |
| 
 | |
| With the tt(-t) flag, turn on execution tracing; with tt(-T), turn on
 | |
| execution tracing only for the current function, turning it off on entry
 | |
| to any called functions that do not also have tracing enabled.
 | |
| 
 | |
| With the tt(-U) flag, alias expansion is suppressed when the function is
 | |
| loaded.
 | |
| 
 | |
| With the tt(-w) flag, the var(name)s are taken as names of files compiled
 | |
| with the tt(zcompile) builtin, and all functions defined in them are
 | |
| marked for autoloading.
 | |
| 
 | |
| The flags tt(-z) and tt(-k) mark the function to be autoloaded using the
 | |
| zsh or ksh style, as if the option tt(KSH_AUTOLOAD) were unset or were
 | |
| set, respectively.  The flags override the setting of the option at the
 | |
| time the function is loaded.
 | |
| 
 | |
| Note that the tt(autoload) command makes no attempt to ensure the
 | |
| shell options set during the loading or execution of the file have
 | |
| any particular value.  For this, the tt(emulate) command can be used:
 | |
| 
 | |
| example(emulate zsh -c 'autoload -Uz var(func)')
 | |
| 
 | |
| arranges that when var(func) is loaded the shell is in native tt(zsh)
 | |
| emulation, and this emulation is also applied when var(func) is run.
 | |
| 
 | |
| Some of the functions of tt(autoload) are also provided by tt(functions
 | |
| -u) or tt(functions -U), but tt(autoload) is a more comprehensive
 | |
| interface.
 | |
| )
 | |
| findex(bg)
 | |
| cindex(jobs, backgrounding)
 | |
| xitem(tt(bg) [ var(job) ... ])
 | |
| item(var(job) ... tt(&))(
 | |
| Put each specified var(job) in the background,
 | |
| or the current job if none is specified.
 | |
| )
 | |
| zlecmd(bindkey)
 | |
| findex(break)
 | |
| cindex(exiting loops)
 | |
| cindex(loops, exiting)
 | |
| item(tt(break) [ var(n) ])(
 | |
| Exit from an enclosing tt(for), tt(while),
 | |
| tt(until), tt(select) or tt(repeat) loop. If an arithmetic expression var(n)
 | |
| is specified, then break var(n) levels instead of just one.
 | |
| )
 | |
| findex(builtin)
 | |
| item(tt(builtin) var(name) [ var(args) ... ])(
 | |
| Executes the builtin var(name), with the given var(args).
 | |
| )
 | |
| alias(bye)(exit)
 | |
| module(cap)(zsh/cap)
 | |
| findex(cd)
 | |
| cindex(directories, changing)
 | |
| xitem(tt(cd) [ tt(-qsLP) ] [ var(arg) ])
 | |
| xitem(tt(cd) [ tt(-qsLP) ] var(old) var(new))
 | |
| item(tt(cd) [ tt(-qsLP) ] {tt(PLUS())|tt(-)}var(n))(
 | |
| Change the current directory.  In the first form, change the
 | |
| current directory to var(arg), or to the value of tt($HOME) if
 | |
| var(arg) is not specified.  If var(arg) is `tt(-)', change to the
 | |
| previous directory.
 | |
| 
 | |
| Otherwise, if var(arg) begins with a slash, attempt to change to the
 | |
| directory given by var(arg).
 | |
| 
 | |
| If var(arg) does not begin with a slash, the behaviour depends on whether
 | |
| the current directory `tt(.)' occurs in the list of directories contained
 | |
| in the shell parameter tt(cdpath).  If it does not, first attempt to change
 | |
| to the directory var(arg) under the current directory, and if that fails
 | |
| but tt(cdpath) is set and contains at least one element attempt to change
 | |
| to the directory var(arg) under each component of tt(cdpath) in turn until
 | |
| successful.  If `tt(.)' occurs in tt(cdpath), then tt(cdpath) is searched
 | |
| strictly in order so that `tt(.)' is only tried at the appropriate point.
 | |
| 
 | |
| The order of testing tt(cdpath) is modified if the option tt(POSIX_CD)
 | |
| is set, as described in the documentation for the option.
 | |
| 
 | |
| If no directory is found, the option tt(CDABLE_VARS) is set, and a
 | |
| parameter named var(arg) exists whose value begins with a slash, treat its
 | |
| value as the directory.  In that case, the parameter is added to the named
 | |
| directory hash table.
 | |
| 
 | |
| The second form of tt(cd) substitutes the string var(new)
 | |
| for the string var(old) in the name of the current directory,
 | |
| and tries to change to this new directory.
 | |
| 
 | |
| The third form of tt(cd) extracts an entry from the directory
 | |
| stack, and changes to that directory.  An argument of the form
 | |
| `tt(PLUS())var(n)' identifies a stack entry by counting from the left
 | |
| of the list shown by the tt(dirs) command, starting with zero.
 | |
| An argument of the form `tt(-)var(n)' counts from the right.
 | |
| If the tt(PUSHD_MINUS) option is set, the meanings of `tt(PLUS())'
 | |
| and `tt(-)' in this context are swapped.
 | |
| 
 | |
| If the tt(-q) (quiet) option is specified, the hook function tt(chpwd)
 | |
| and the functions in the array tt(chpwd_functions) are not called.
 | |
| This is useful for calls to tt(cd) that do not change the environment
 | |
| seen by an interactive user.
 | |
| 
 | |
| If the tt(-s) option is specified, tt(cd) refuses to change the current
 | |
| directory if the given pathname contains symlinks.  If the tt(-P) option
 | |
| is given or the tt(CHASE_LINKS) option is set, symbolic links are resolved
 | |
| to their true values.  If the tt(-L) option is given symbolic links are
 | |
| retained in the directory (and not resolved) regardless of the state of
 | |
| the tt(CHASE_LINKS) option.
 | |
| )
 | |
| alias(chdir)(cd)
 | |
| module(clone)(zsh/clone)
 | |
| findex(command)
 | |
| item(tt(command) [ tt(-pvV) ] var(simple command))(
 | |
| The simple command argument is taken as an external command instead of
 | |
| a function or builtin and is executed. If the tt(POSIX_BUILTINS) option
 | |
| is set, builtins will also be executed but certain special properties
 | |
| of them are suppressed. The tt(-p) flag causes a default path to be
 | |
| searched instead of that in tt($path). With the tt(-v) flag, tt(command)
 | |
| is similar to tt(whence) and with tt(-V), it is equivalent to tt(whence
 | |
| -v).
 | |
| 
 | |
| See also ifzman(the section `Precommand Modifiers' in zmanref(zshmisc))\
 | |
| ifnzman(noderef(Precommand Modifiers)).
 | |
| )
 | |
| module(comparguments)(zsh/computil)
 | |
| module(compcall)(zsh/compctl)
 | |
| module(compctl)(zsh/compctl)
 | |
| module(compdescribe)(zsh/computil)
 | |
| module(compfiles)(zsh/computil)
 | |
| module(compgroups)(zsh/computil)
 | |
| module(compquote)(zsh/computil)
 | |
| module(comptags)(zsh/computil)
 | |
| module(comptry)(zsh/computil)
 | |
| module(compvalues)(zsh/computil)
 | |
| findex(continue)
 | |
| cindex(loops, continuing)
 | |
| cindex(continuing loops)
 | |
| item(tt(continue) [ var(n) ])(
 | |
| Resume the next iteration of the enclosing
 | |
| tt(for), tt(while), tt(until), tt(select) or
 | |
| tt(repeat) loop. If an arithmetic expression var(n) is specified, break out of
 | |
| var(n)-1 loops and resume at the var(n)th enclosing loop.
 | |
| )
 | |
| alias(declare)(typeset)
 | |
| findex(dirs)
 | |
| cindex(directory stack, printing)
 | |
| xitem(tt(dirs) [ tt(-c) ] [ var(arg) ... ])
 | |
| item(tt(dirs) [ tt(-lpv) ])(
 | |
| With no arguments, print the contents of the directory stack.
 | |
| Directories are added to this stack with the tt(pushd) command,
 | |
| and removed with the tt(cd) or tt(popd) commands.
 | |
| If arguments are specified, load them onto the directory stack,
 | |
| replacing anything that was there, and push the current directory
 | |
| onto the stack.
 | |
| 
 | |
| startitem()
 | |
| item(tt(-c))(
 | |
| clear the directory stack.
 | |
| )
 | |
| item(tt(-l))(
 | |
| print directory names in full instead of using of using tt(~) expressions (\
 | |
| ifzman(see em(Dynamic) and em(Static named directories) in zmanref(zshexpn))\
 | |
| ifnzman(noderef(Filename Expansion))).
 | |
| )
 | |
| item(tt(-p))(
 | |
| print directory entries one per line.
 | |
| )
 | |
| item(tt(-v))(
 | |
| number the directories in the stack when printing.
 | |
| )
 | |
| enditem()
 | |
| 
 | |
| )
 | |
| findex(disable)
 | |
| cindex(disabling commands)
 | |
| cindex(commands, disabling)
 | |
| item(tt(disable) [ tt(-afmprs) ] var(name) ...)(
 | |
| Temporarily disable the var(name)d hash table elements or patterns.  The default
 | |
| is to disable builtin commands.  This allows you to use an external
 | |
| command with the same name as a builtin command.  The tt(-a) option
 | |
| causes tt(disable) to act on regular or global aliases.  The tt(-s)
 | |
| option causes tt(disable) to act on suffix aliases.  The tt(-f) option causes
 | |
| tt(disable) to act on shell functions.  The tt(-r) options causes
 | |
| tt(disable) to act on reserved words.  Without arguments all disabled
 | |
| hash table elements from the corresponding hash table are printed.
 | |
| With the tt(-m) flag the arguments are taken as patterns (which should be
 | |
| quoted to prevent them from undergoing filename expansion), and all hash
 | |
| table elements from the corresponding hash table matching these patterns
 | |
| are disabled.  Disabled objects can be enabled with the tt(enable)
 | |
| command.
 | |
| 
 | |
| With the option tt(-p), var(name) ... refer to elements of the
 | |
| shell's pattern syntax as described in noderef(Filename Generation).
 | |
| Certain elements can be disabled separately, as given below.
 | |
| 
 | |
| Note that patterns
 | |
| not allowed by the current settings for the options tt(EXTENDED_GLOB),
 | |
| tt(KSH_GLOB) and tt(SH_GLOB) are never enabled, regardless of the
 | |
| setting here.  For example, if tt(EXTENDED_GLOB) is not active,
 | |
| the pattern tt(^) is ineffective even if `tt(disable -p "^")' has
 | |
| not been issued.  The list below indicates any option settings
 | |
| that restrict the use of the pattern.  It should be noted that
 | |
| setting tt(SH_GLOB) has a wider effect than merely disabling patterns
 | |
| as certain expressions, in particular those involving parentheses,
 | |
| are parsed differently.
 | |
| 
 | |
| The following patterns may be disabled; all
 | |
| the strings need quoting on the command line to prevent them from
 | |
| being interpreted immediately as patterns and the patterns are
 | |
| shown below in single quotes as a reminder.
 | |
| 
 | |
| startitem()
 | |
| item(tt('?'))(
 | |
| The pattern character tt(?) wherever it occurs, including when preceding
 | |
| a parenthesis with tt(KSH_GLOB).
 | |
| )
 | |
| item(tt('*'))(
 | |
| The pattern character tt(*) wherever it occurs, including recursive
 | |
| globbing and when preceding a parenthesis with tt(KSH_GLOB).
 | |
| )
 | |
| item(tt('LSQUARE()'))(
 | |
| Character classes.
 | |
| )
 | |
| item(tt('<') (tt(NO_SH_GLOB)))(
 | |
| Numeric ranges.
 | |
| )
 | |
| item(tt('|') (tt(NO_SH_GLOB)))(
 | |
| Alternation in grouped patterns, case statements, or KSH_GLOB
 | |
| parenthesised expressions.
 | |
| )
 | |
| item(tt('LPAR()') (tt(NO_SH_GLOB)))(
 | |
| Grouping using single parentheses.  Disabling this does not disable the
 | |
| use of parentheses for tt(KSH_GLOB) where they are introduced by a
 | |
| special character, nor for glob qualifiers (use `tt(setopt
 | |
| NO_BARE_GLOB_QUAL)' to disable glob qualifiers that use parentheses
 | |
| only).
 | |
| )
 | |
| item(tt('~') (tt(EXTENDED_GLOB)))(
 | |
| Exclusion in the form var(A)tt(~)var(B).
 | |
| )
 | |
| item(tt('^') (tt(EXTENDED_GLOB)))(
 | |
| Exclusion in the form var(A)tt(^)var(B).
 | |
| )
 | |
| item(tt('#') (tt(EXTENDED_GLOB)))(
 | |
| The pattern character tt(#) wherever it occurs, both for
 | |
| repetition of a previous pattern and for indicating globbing flags.
 | |
| )
 | |
| item(tt('?LPAR()') (tt(KSH_GLOB)))(
 | |
| The grouping form tt(?LPAR())var(...)tt(RPAR()).  Note this is also
 | |
| disabled if tt('?') is disabled.
 | |
| )
 | |
| item(tt('*LPAR()') (tt(KSH_GLOB)))(
 | |
| The grouping form tt(*LPAR())var(...)tt(RPAR()).  Note this is also
 | |
| disabled if tt('*') is disabled.
 | |
| )
 | |
| item(tt('PLUS()LPAR()') (tt(KSH_GLOB)))(
 | |
| The grouping form tt(PLUS()LPAR())var(...)tt(RPAR()).
 | |
| )
 | |
| item(tt('!LPAR()') (tt(KSH_GLOB)))(
 | |
| The grouping form tt(!LPAR())var(...)tt(RPAR()).
 | |
| )
 | |
| item(tt('@LPAR()') (tt(KSH_GLOB)))(
 | |
| The grouping form tt(@LPAR())var(...)tt(RPAR()).
 | |
| )
 | |
| enditem()
 | |
| )
 | |
| findex(disown)
 | |
| cindex(jobs, disowning)
 | |
| xitem(tt(disown) [ var(job) ... ])
 | |
| xitem(var(job) ... tt(&|))
 | |
| item(var(job) ... tt(&!))(
 | |
| Remove the specified var(job)s from the job table; the shell will
 | |
| no longer report their status, and will not complain if you
 | |
| try to exit an interactive shell with them running or stopped.
 | |
| If no var(job) is specified, disown the current job.
 | |
| 
 | |
| If the var(job)s are currently stopped and the tt(AUTO_CONTINUE) option
 | |
| is not set, a warning is printed containing information about how to
 | |
| make them running after they have been disowned.  If one of the latter
 | |
| two forms is used, the var(job)s will automatically be made running,
 | |
| independent of the setting of the tt(AUTO_CONTINUE) option.
 | |
| )
 | |
| findex(echo)
 | |
| item(tt(echo) [ tt(-neE) ] [ var(arg) ... ])(
 | |
| Write each var(arg) on the standard output, with a space separating
 | |
| each one.
 | |
| If the tt(-n) flag is not present, print a newline at the end.
 | |
| tt(echo) recognizes the following escape sequences:
 | |
| 
 | |
| startsitem()
 | |
| sitem(tt(\a))(bell character)
 | |
| sitem(tt(\b))(backspace)
 | |
| sitem(tt(\c))(suppress subsequent characters and final newline)
 | |
| sitem(tt(\e))(escape)
 | |
| sitem(tt(\f))(form feed)
 | |
| sitem(tt(\n))(linefeed (newline))
 | |
| sitem(tt(\r))(carriage return)
 | |
| sitem(tt(\t))(horizontal tab)
 | |
| sitem(tt(\v))(vertical tab)
 | |
| sitem(tt(\\))(backslash)
 | |
| sitem(tt(\0)var(NNN))(character code in octal)
 | |
| sitem(tt(\x)var(NN))(character code in hexadecimal)
 | |
| sitem(tt(\u)var(NNNN))(unicode character code in hexadecimal)
 | |
| sitem(tt(\U)var(NNNNNNNN))(unicode character code in hexadecimal)
 | |
| endsitem()
 | |
| 
 | |
| pindex(BSD_ECHO, use of)
 | |
| The tt(-E) flag, or the tt(BSD_ECHO) option, can be used to disable
 | |
| these escape sequences.  In the latter case, tt(-e) flag can be used to
 | |
| enable them.
 | |
| )
 | |
| module(echotc)(zsh/termcap)
 | |
| module(echoti)(zsh/terminfo)
 | |
| findex(emulate)
 | |
| cindex(compatibility, sh)
 | |
| cindex(compatibility, ksh)
 | |
| cindex(compatibility, csh)
 | |
| cindex(sh, compatibility)
 | |
| cindex(ksh, compatibility)
 | |
| cindex(csh, compatibility)
 | |
| item(tt(emulate) [ tt(-lLR) ] [ {tt(zsh)|tt(sh)|tt(ksh)|tt(csh)} [ var(flags) ... ] ])(
 | |
| Without any argument print current emulation mode.
 | |
| 
 | |
| With single argument set up zsh options to emulate the specified shell
 | |
| as much as possible.
 | |
| bf(csh) will never be fully emulated.
 | |
| If the argument is not one of the shells listed above, tt(zsh)
 | |
| will be used as a default; more precisely, the tests performed on the
 | |
| argument are the same as those used to determine the emulation at startup
 | |
| based on the shell name, see
 | |
| ifzman(\
 | |
| the section COMPATIBILITY in zmanref(zsh)
 | |
| )\
 | |
| ifnzman(\
 | |
| noderef(Compatibility)
 | |
| )\
 | |
| .  In addition to setting shell options, the command also restores
 | |
| the pristine state of pattern enables, as if all patterns had been
 | |
| enabled using tt(enable -p).
 | |
| 
 | |
| If the tt(emulate) command occurs inside a function that has been
 | |
| marked for execution tracing with tt(functions -t) then the tt(xtrace)
 | |
| option will be turned on regardless of emulation mode or other options.
 | |
| Note that code executed inside the function by the tt(.), tt(source), or
 | |
| tt(eval) commands is not considered to be running directly from the
 | |
| function, hence does not provoke this behaviour.
 | |
| 
 | |
| If the tt(-R) switch is given, all settable options
 | |
| are reset to their default value corresponding to the specified emulation
 | |
| mode, except for certain options describing the interactive
 | |
| environment; otherwise, only those options likely to cause portability
 | |
| problems in scripts and functions are altered.  If the tt(-L) switch is given,
 | |
| the options tt(LOCAL_OPTIONS), tt(LOCAL_PATTERNS) and tt(LOCAL_TRAPS)
 | |
| will be set as
 | |
| well, causing the effects of the tt(emulate) command and any tt(setopt),
 | |
| tt(disable -p) or tt(enable -p), and tt(trap) commands to be local to
 | |
| the immediately surrounding shell
 | |
| function, if any; normally these options are turned off in all emulation
 | |
| modes except tt(ksh). The tt(-L) switch is mutually exclusive with the
 | |
| use of tt(-c) in var(flags).
 | |
| 
 | |
| If there is a single argument and the tt(-l) switch is given, the
 | |
| options that would be set or unset (the latter indicated with the prefix
 | |
| `tt(no)') are listed.  tt(-l) can be combined with tt(-L) or tt(-R) and
 | |
| the list will be modified in the appropriate way.  Note the list does
 | |
| not depend on the current setting of options, i.e. it includes all
 | |
| options that may in principle change, not just those that would actually
 | |
| change.
 | |
| 
 | |
| The var(flags) may be any of the invocation-time flags described in
 | |
| ifnzman(noderef(Invocation))\
 | |
| ifzman(the section INVOCATION in zmanref(zsh)),
 | |
| except that `tt(-o EMACS)' and `tt(-o VI)' may not be used.  Flags such
 | |
| as `tt(+r)'/`tt(+o RESTRICTED)' may be prohibited in some circumstances.
 | |
| 
 | |
| If tt(-c) var(arg) appears in var(flags), var(arg) is evaluated while the
 | |
| requested emulation is temporarily in effect.  In this case the emulation
 | |
| mode and all options are restored to their previous values before
 | |
| tt(emulate) returns.  The tt(-R) switch may precede the name of the shell
 | |
| to emulate; note this has a meaning distinct from including tt(-R) in
 | |
| var(flags).
 | |
| 
 | |
| Use of tt(-c) enables `sticky' emulation mode for functions defined
 | |
| within the evaluated expression:  the emulation mode is associated
 | |
| thereafter with the function so that whenever the function is executed
 | |
| the emulation (respecting the tt(-R) switch, if present) and all
 | |
| options are set (and pattern disables cleared)
 | |
| before entry to the function, and the state is restored after exit.
 | |
| If the function is called when the sticky emulation is already in
 | |
| effect, either within an `tt(emulate) var(shell) tt(-c)' expression or
 | |
| within another function with the same sticky emulation, entry and exit
 | |
| from the function do not cause options to be altered (except due to
 | |
| standard processing such as the tt(LOCAL_OPTIONS) option).  This also
 | |
| applies to functions marked for autoload within the sticky emulation;
 | |
| the appropriate set of options will be applied at the point the
 | |
| function is loaded as well as when it is run.
 | |
| 
 | |
| For example:
 | |
| 
 | |
| example(emulate sh -c 'fni+LPAR()RPAR() { setopt cshnullglob; }
 | |
| fno+LPAR()RPAR() { fni; }'
 | |
| fno)
 | |
| 
 | |
| The two functions tt(fni) and tt(fno) are defined with sticky tt(sh)
 | |
| emulation.  tt(fno) is then executed, causing options associated
 | |
| with emulations to be set to their values in tt(sh).  tt(fno) then
 | |
| calls tt(fni); because tt(fni) is also marked for sticky tt(sh)
 | |
| emulation, no option changes take place on entry to or exit from it.
 | |
| Hence the option tt(cshnullglob), turned off by tt(sh) emulation, will
 | |
| be turned on within tt(fni) and remain on return to tt(fno).  On exit
 | |
| from tt(fno), the emulation mode and all options will be restored to the
 | |
| state they were in before entry to the temporary emulation.
 | |
| 
 | |
| The documentation above is typically sufficient for the intended
 | |
| purpose of executing code designed for other shells in a suitable
 | |
| environment.  More detailed rules follow.
 | |
| startsitem()
 | |
| sitem(1.)(The sticky emulation environment provided by `tt(emulate)
 | |
| var(shell) tt(-c)' is identical to that provided by entry to
 | |
| a function marked for sticky emulation as a consequence of being
 | |
| defined in such an environment.  Hence, for example, the sticky
 | |
| emulation is inherited by subfunctions defined within functions
 | |
| with sticky emulation.)
 | |
| sitem(2.)(No change of options takes place on entry to or exit from
 | |
| functions that are not marked for sticky emulation, other than those
 | |
| that would normally take place, even if those functions are called
 | |
| within sticky emulation.)
 | |
| sitem(3.)(No special handling is provided for functions marked for
 | |
| tt(autoload) nor for functions present in wordcode created by
 | |
| the tt(zcompile) command.)
 | |
| sitem(4.)(The presence or absence of the tt(-R) switch to tt(emulate)
 | |
| corresponds to different sticky emulation modes, so for example
 | |
| `tt(emulate sh -c)', `tt(emulate -R sh -c)' and `tt(emulate csh -c)'
 | |
| are treated as three distinct sticky emulations.)
 | |
| sitem(5.)(Difference in shell options supplied in addition to the
 | |
| basic emulation also mean the sticky emulations are different, so for
 | |
| example `tt(emulate zsh -c)' and `tt(emulate zsh -o cbases -c)' are
 | |
| treated as distinct sticky emulations.)
 | |
| endsitem()
 | |
| )
 | |
| findex(enable)
 | |
| cindex(enabling commands)
 | |
| cindex(commands, enabling)
 | |
| item(tt(enable) [ tt(-afmprs) ] var(name) ...)(
 | |
| Enable the var(name)d hash table elements, presumably disabled
 | |
| earlier with tt(disable).  The default is to enable builtin commands.
 | |
| The tt(-a) option causes tt(enable) to act on regular or global aliases.
 | |
| The tt(-s) option causes tt(enable) to act on suffix aliases.
 | |
| The tt(-f) option causes tt(enable) to act on shell functions.  The tt(-r)
 | |
| option causes tt(enable) to act on reserved words.  Without arguments
 | |
| all enabled hash table elements from the corresponding hash table are
 | |
| printed.  With the tt(-m) flag the arguments are taken as patterns
 | |
| (should be quoted) and all hash table elements from the corresponding
 | |
| hash table matching these patterns are enabled.  Enabled objects can be
 | |
| disabled with the tt(disable) builtin command.
 | |
| 
 | |
| tt(enable -p) reenables patterns disabled with tt(disable -p).  Note
 | |
| that it does not override globbing options; for example, `tt(enable -p
 | |
| "~")' does not cause the pattern character tt(~) to be active unless
 | |
| the tt(EXTENDED_GLOB) option is also set.  To enable all possible
 | |
| patterns (so that they may be individually disabled with tt(disable -p)),
 | |
| use `tt(setopt EXTENDED_GLOB KSH_GLOB NO_SH_GLOB)'.
 | |
| )
 | |
| findex(eval)
 | |
| cindex(evaluating arguments as commands)
 | |
| item(tt(eval) [ var(arg) ... ])(
 | |
| Read the arguments as input to the shell and execute the resulting
 | |
| command+LPAR()s+RPAR() in the current shell process.  The return status is
 | |
| the same as if the commands had been executed directly by the shell;
 | |
| if there are no var(args) or they contain no commands (i.e. are
 | |
| an empty string or whitespace) the return status is zero.
 | |
| )
 | |
| item(tt(exec) [ tt(-cl) ] [ tt(-a) var(argv0) ] [ var(command) [ var(arg) ... ] ])(
 | |
| Replace the current shell with var(command) rather than forking.
 | |
| If var(command) is a shell builtin command or a shell function,
 | |
| the shell executes it, then immediately exits.
 | |
| 
 | |
| With tt(-c) clear the environment; with tt(-l) prepend tt(-) to the
 | |
| tt(argv[0]) string of the command executed (to simulate a login shell);
 | |
| with tt(-a) var(argv0) set the tt(argv[0]) string of the command
 | |
| executed.
 | |
| See ifzman(the section `Precommand Modifiers' in zmanref(zshmisc))\
 | |
| ifnzman(noderef(Precommand Modifiers)).
 | |
| 
 | |
| If the option tt(POSIX_BUILTINS) is set, var(command) is never
 | |
| interpreted as a shell builtin command or shell function.  This
 | |
| means further precommand modifiers such as tt(builtin) and
 | |
| tt(noglob) are also not interpreted within the shell.  Hence
 | |
| var(command) is always found by searching the command path.
 | |
| 
 | |
| cindex(redirection, current shell's I/O)
 | |
| If var(command) is omitted but any redirections are specified,
 | |
| then the redirections will take effect in the current shell.
 | |
| )
 | |
| findex(exit)
 | |
| item(tt(exit) [ var(n) ])(
 | |
| Exit the shell with the exit status specified by an arithmetic
 | |
| expression var(n); if none
 | |
| is specified, use the exit status from the last command executed.
 | |
| pindex(IGNORE_EOF, use of)
 | |
| An EOF condition will also cause the shell to exit, unless
 | |
| the tt(IGNORE_EOF) option is set.
 | |
| 
 | |
| See notes at the end of
 | |
| ifzman(the section JOBS in zmanref(zshmisc))\
 | |
| ifnzman(noderef(Jobs & Signals)) for some possibly unexpected interactions
 | |
| of the tt(exit) command with jobs.
 | |
| )
 | |
| findex(export)
 | |
| item(tt(export) [ var(name)[tt(=)var(value)] ... ])(
 | |
| The specified var(name)s are marked for automatic export
 | |
| to the environment of subsequently executed commands.
 | |
| Equivalent to tt(typeset -gx).
 | |
| If a parameter specified does not
 | |
| already exist, it is created in the global scope.
 | |
| )
 | |
| findex(false)
 | |
| cindex(doing nothing, unsuccessfully)
 | |
| item(tt(false) [ var(arg) ... ])(
 | |
| Do nothing and return an exit status of 1.
 | |
| )
 | |
| findex(fc)
 | |
| cindex(history, editing)
 | |
| cindex(editing history)
 | |
| redef(SPACES)(0)(tt(ifztexi(NOTRANS(@ @ @ @ @ @ ))ifnztexi(      )))
 | |
| xitem(tt(fc) [ tt(-e) var(ename) ] [ tt(-LI) ] [ tt(-m) var(match) ] [ var(old)tt(=)var(new) ... ] [ var(first) [ var(last) ] ])
 | |
| xitem(tt(fc -l )[ tt(-LI) ] [ tt(-nrdfEiD) ] [ tt(-t) var(timefmt) ] [ tt(-m) var(match) ])
 | |
| xitem(SPACES()[ var(old)tt(=)var(new) ... ] [ var(first) [ var(last) ] ])
 | |
| xitem(tt(fc -p )[ tt(-a) ] [ var(filename) [ var(histsize) [ var(savehistsize) ] ] ])
 | |
| xitem(tt(fc) tt(-P))
 | |
| item(tt(fc) tt(-ARWI) [ var(filename) ])(
 | |
| The tt(fc) command controls the interactive history mechanism.  Note
 | |
| that reading and writing of history options is only performed if the
 | |
| shell is interactive.  Usually this is detected automatically, but
 | |
| it can be forced by setting the tt(interactive) option when starting the
 | |
| shell.
 | |
| 
 | |
| The first two forms of this command select a range of events from
 | |
| var(first) to var(last) from the history list.  The arguments var(first)
 | |
| and var(last) may be specified as a number or as a string.  A negative
 | |
| number is used as an offset to the current history event number.  A string
 | |
| specifies the most recent event beginning with the given string.  All
 | |
| substitutions var(old)tt(=)var(new), if any, are then performed on the
 | |
| text of the events.
 | |
| 
 | |
| In addition to the number range,
 | |
| startsitem()
 | |
| sitem(tt(-I))(restricts to only internal events (not from tt($HISTFILE)))
 | |
| sitem(tt(-L))(restricts to only local events (not from other shells, see
 | |
| tt(SHARE_HISTORY) in ifzman(zmanref(zshoptions))\
 | |
| ifnzman(noderef(Description of Options)) -- note that tt($HISTFILE) is
 | |
| considered local when read at startup))
 | |
| sitem(tt(-m))(takes the first argument as a pattern (should be quoted) and
 | |
| only the history events matching this pattern are considered)
 | |
| endsitem()
 | |
| 
 | |
| If var(first) is not specified, it will be set to -1 (the most recent
 | |
| event), or to -16 if the tt(-l) flag is given.
 | |
| If var(last) is not specified, it will be set to var(first),
 | |
| or to -1 if the tt(-l) flag is given.
 | |
| However, if the current event has added entries to the history with
 | |
| `tt(print -s)' or `tt(fc -R)', then the default var(last) for tt(-l)
 | |
| includes all new history entries since the current event began.
 | |
| 
 | |
| When the tt(-l) flag is given, the resulting events are listed on
 | |
| standard output.  Otherwise the editor program var(ename) is invoked on a
 | |
| file containing these history events.  If var(ename) is not given, the
 | |
| value of the parameter tt(FCEDIT) is used; if that is not set the value of
 | |
| the parameter tt(EDITOR) is used; if that is not set a builtin default,
 | |
| usually `tt(vi)' is used.  If var(ename) is `tt(-)', no editor is invoked.
 | |
| When editing is complete, the edited command is executed.
 | |
| 
 | |
| The flag tt(-r) reverses the order of the events and the
 | |
| flag tt(-n) suppresses event numbers when listing.
 | |
| 
 | |
| Also when listing,
 | |
| startsitem()
 | |
| sitem(tt(-d))(prints timestamps for each event)
 | |
| sitem(tt(-f))(prints full time-date stamps in the US
 | |
| `var(MM)tt(/)var(DD)tt(/)var(YY) var(hh)tt(:)var(mm)' format)
 | |
| sitem(tt(-E))(prints full time-date stamps in the European
 | |
| `var(dd)tt(.)var(mm)tt(.)var(yyyy) var(hh)tt(:)var(mm)' format)
 | |
| sitem(tt(-i))(prints full time-date stamps in ISO8601
 | |
| `var(yyyy)tt(-)var(mm)tt(-)var(dd) var(hh)tt(:)var(mm)' format)
 | |
| sitem(tt(-t) var(fmt))(prints time and date stamps in the given format;
 | |
| var(fmt) is formatted with the strftime function with the zsh extensions
 | |
| described for the tt(%D{)var(string)tt(}) prompt format in
 | |
| ifzman(the section EXPANSION OF PROMPT SEQUENCES in zmanref(zshmisc))\
 | |
| ifnzman(noderef(Prompt Expansion)).  The resulting formatted string must be
 | |
| no more than 256 characters or will not be printed
 | |
| )
 | |
| sitem(tt(-D))(prints elapsed times; may be combined with one of the
 | |
| options above)
 | |
| endsitem()
 | |
| 
 | |
| cindex(history, stack)
 | |
| cindex(stack, history)
 | |
| `tt(fc -p)' pushes the current history list onto a stack and switches to a
 | |
| new history list.  If the tt(-a) option is also specified, this history list
 | |
| will be automatically popped when the current function scope is exited, which
 | |
| is a much better solution than creating a trap function to call `tt(fc -P)'
 | |
| manually.  If no arguments are specified, the history list is left empty,
 | |
| tt($HISTFILE) is unset, and tt($HISTSIZE) & tt($SAVEHIST) are set to their
 | |
| default values.  If one argument is given, tt($HISTFILE) is set to that
 | |
| filename, tt($HISTSIZE) & tt($SAVEHIST) are left unchanged, and the history
 | |
| file is read in (if it exists) to initialize the new list.  If a second
 | |
| argument is specified, tt($HISTSIZE) & tt($SAVEHIST) are instead set to the
 | |
| single specified numeric value.  Finally, if a third argument is specified,
 | |
| tt($SAVEHIST) is set to a separate value from tt($HISTSIZE).  You are free to
 | |
| change these environment values for the new history list however you desire
 | |
| in order to manipulate the new history list.
 | |
| 
 | |
| `tt(fc -P)' pops the history list back to an older list saved by `tt(fc -p)'.
 | |
| The current list is saved to its tt($HISTFILE) before it is destroyed
 | |
| (assuming that tt($HISTFILE) and tt($SAVEHIST) are set appropriately, of
 | |
| course).  The values of tt($HISTFILE), tt($HISTSIZE), and tt($SAVEHIST) are
 | |
| restored to the values they had when `tt(fc -p)' was called.  Note that this
 | |
| restoration can conflict with making these variables "local", so your best
 | |
| bet is to avoid local declarations for these variables in functions that use
 | |
| `tt(fc -p)'.  The one other guaranteed-safe combination is declaring these
 | |
| variables to be local at the top of your function and using the automatic
 | |
| option (tt(-a)) with `tt(fc -p)'.  Finally, note that it is legal to manually
 | |
| pop a push marked for automatic popping if you need to do so before the
 | |
| function exits.
 | |
| 
 | |
| cindex(history, file)
 | |
| cindex(file, history)
 | |
| `tt(fc -R)' reads the history from the given file,
 | |
| `tt(fc -W)' writes the history out to the given file,
 | |
| and `tt(fc -A)' appends the history out to the given file.
 | |
| If no filename is specified, the tt($HISTFILE) is assumed.
 | |
| If the tt(-I) option is added to tt(-R), only those events that are
 | |
| not already contained within the internal history list are added.
 | |
| If the tt(-I) option is added to tt(-A) or tt(-W), only those
 | |
| events that are new since last incremental append/write to
 | |
| the history file are appended/written.
 | |
| In any case, the created file will have no more than tt($SAVEHIST)
 | |
| entries.
 | |
| )
 | |
| findex(fg)
 | |
| cindex(jobs, foregrounding)
 | |
| cindex(jobs, resuming)
 | |
| xitem(tt(fg) [ var(job) ... ])
 | |
| item(var(job) ...)(
 | |
| Bring each specified var(job) in turn to the foreground.
 | |
| If no var(job) is specified, resume the current job.
 | |
| )
 | |
| findex(float)
 | |
| item(tt(float) [ {tt(PLUS())|tt(-)}tt(Hghlprtux) ] \
 | |
| [ {tt(PLUS())|tt(-)}tt(EFLRZ) [ var(n) ] ] [ var(name)[tt(=)var(value)] ... ])(
 | |
| Equivalent to tt(typeset -E), except that options irrelevant to floating
 | |
| point numbers are not permitted.
 | |
| )
 | |
| findex(functions)
 | |
| xitem(tt(functions) [ {tt(PLUS())|tt(-)}tt(UkmtTuWz) ] [ tt(-x) var(num) ] [ var(name) ... ])
 | |
| xitem(tt(functions -M) [tt(-s)] var(mathfn) [ var(min) [ var(max) [ var(shellfn) ] ] ])
 | |
| xitem(tt(functions -M) [ tt(-m) var(pattern) ... ])
 | |
| item(tt(functions +M) [ tt(-m) ] var(mathfn) ... )(
 | |
| Equivalent to tt(typeset -f), with the exception of the tt(-x),
 | |
| tt(-M) and tt(-W) options.  For tt(functions -u) and tt(functions -U),
 | |
| see tt(autoload), which provides additional options.
 | |
| 
 | |
| The tt(-x) option indicates that any functions output will have
 | |
| each leading tab for indentation, added by the shell to show syntactic
 | |
| structure, expanded to the given number var(num) of spaces.  var(num)
 | |
| can also be 0 to suppress all indentation.
 | |
| 
 | |
| The tt(-W) option turns on the option tt(WARN_NESTED_VAR) for the named
 | |
| function or functions only.  The option is turned off at the start of
 | |
| nested functions (apart from anonoymous functions) unless the called
 | |
| function also has the tt(-W) attribute.
 | |
| 
 | |
| Use of the tt(-M) option may not be combined with any of the options
 | |
| handled by tt(typeset -f).
 | |
| 
 | |
| tt(functions -M) var(mathfn) defines var(mathfn) as the name of
 | |
| a mathematical function recognised in all forms of arithmetical expressions;
 | |
| see
 | |
| ifzman(the section `Arithmetic Evaluation' in zmanref(zshmisc))\
 | |
| ifnzman(noderef(Arithmetic Evaluation))\
 | |
| .  By default var(mathfn) may take
 | |
| any number of comma-separated arguments.  If var(min) is given,
 | |
| it must have exactly var(min) args; if var(min) and var(max) are
 | |
| both given, it must have at least var(min) and at most var(max)
 | |
| args.  var(max) may be -1 to indicate that there is no upper limit.
 | |
| 
 | |
| By default the function is implemented by a shell function of the same
 | |
| name; if var(shellfn) is specified it gives the name of the corresponding
 | |
| shell function while var(mathfn) remains the name used in arithmetical
 | |
| expressions.  The name of the function in tt($0) is var(mathfn) (not
 | |
| var(shellfn) as would usually be the case), provided the option
 | |
| tt(FUNCTION_ARGZERO) is in effect.  The positional parameters in the shell
 | |
| function correspond to the arguments of the mathematical function call.
 | |
| The result of the last arithmetical expression evaluated
 | |
| inside the shell function (even if it is a form that normally only returns
 | |
| a status) gives the result of the mathematical function.
 | |
| 
 | |
| If the additional option tt(-s) is given to tt(functions -M), the
 | |
| argument to the function is a single string: anything between the
 | |
| opening and matching closing parenthesis is passed to the function as a
 | |
| single argument, even if it includes commas or white space.  The minimum
 | |
| and maximum argument specifiers must therefore be 1 if given.  An empty
 | |
| argument list is passed as a zero-length string.
 | |
| 
 | |
| tt(functions -M) with no arguments lists all such user-defined functions in
 | |
| the same form as a definition.  With the additional option tt(-m) and
 | |
| a list of arguments, all functions whose var(mathfn) matches one of
 | |
| the pattern arguments are listed.
 | |
| 
 | |
| tt(function +M) removes the list of mathematical functions; with the
 | |
| additional option tt(-m) the arguments are treated as patterns and
 | |
| all functions whose var(mathfn) matches the pattern are removed.  Note
 | |
| that the shell function implementing the behaviour is not removed
 | |
| (regardless of whether its name coincides with var(mathfn)).
 | |
| 
 | |
| For example, the following prints the cube of 3:
 | |
| 
 | |
| example(zmath_cube+LPAR()RPAR() { (( $1 * $1 * $1 )) }
 | |
| functions -M cube 1 1 zmath_cube
 | |
| print $(( cube+LPAR()3+RPAR() )))
 | |
| 
 | |
| The following string function takes a single argument, including
 | |
| the commas, so prints 11:
 | |
| 
 | |
| example(stringfn+LPAR()RPAR() { (( $#1 )) }
 | |
| functions -Ms stringfn
 | |
| print $(( stringfn+LPAR()foo,bar,rod+RPAR() )))
 | |
| )
 | |
| module(getcap)(zsh/cap)
 | |
| findex(getln)
 | |
| cindex(line, reading)
 | |
| cindex(reading a line)
 | |
| item(tt(getln) [ tt(-AclneE) ] var(name) ...)(
 | |
| Read the top value from the buffer stack and put it in
 | |
| the shell parameter var(name).  Equivalent to
 | |
| tt(read -zr).
 | |
| )
 | |
| findex(getopts)
 | |
| cindex(options, processing)
 | |
| item(tt(getopts) var(optstring) var(name) [ var(arg) ... ])(
 | |
| Checks the var(arg)s for legal options.  If the var(arg)s are omitted,
 | |
| use the positional parameters.  A valid option argument
 | |
| begins with a `tt(PLUS())' or a `tt(-)'.  An argument not beginning with
 | |
| a `tt(PLUS())' or a `tt(-)', or the argument `tt(-)tt(-)', ends the options.
 | |
| Note that a single `tt(-)' is not considered a valid option argument.
 | |
| var(optstring) contains the letters that tt(getopts)
 | |
| recognizes.  If a letter is followed by a `tt(:)', that option
 | |
| requires an argument.  The options can be
 | |
| separated from the argument by blanks.
 | |
| 
 | |
| Each time it is invoked, tt(getopts) places the option letter it finds
 | |
| in the shell parameter var(name), prepended with a `tt(PLUS())' when
 | |
| var(arg) begins with a `tt(PLUS())'.  The index of the next var(arg)
 | |
| is stored in tt(OPTIND).  The option argument, if any,
 | |
| is stored in tt(OPTARG).
 | |
| vindex(OPTIND, use of)
 | |
| vindex(OPTARG, use of)
 | |
| 
 | |
| The first option to be examined may be changed by explicitly assigning
 | |
| to tt(OPTIND).  tt(OPTIND) has an initial value of tt(1), and is
 | |
| normally set to tt(1) upon entry to a shell function and restored
 | |
| upon exit (this is disabled by the tt(POSIX_BUILTINS) option).  tt(OPTARG)
 | |
| is not reset and retains its value from the most recent call to
 | |
| tt(getopts).  If either of tt(OPTIND) or tt(OPTARG) is explicitly
 | |
| unset, it remains unset, and the index or option argument is not
 | |
| stored.  The option itself is still stored in var(name) in this case.
 | |
| 
 | |
| A leading `tt(:)' in var(optstring) causes tt(getopts) to store the
 | |
| letter of any invalid option in tt(OPTARG), and to set var(name) to
 | |
| `tt(?)' for an unknown option and to `tt(:)' when a required argument is
 | |
| missing.  Otherwise, tt(getopts) sets var(name) to `tt(?)' and prints
 | |
| an error message when an option is invalid.  The exit status is
 | |
| nonzero when there are no more options.
 | |
| )
 | |
| findex(hash)
 | |
| item(tt(hash) [ tt(-Ldfmrv) ] [ var(name)[tt(=)var(value)] ] ...)(
 | |
| tt(hash) can be used to directly modify the contents of the command
 | |
| hash table, and the named directory hash table.  Normally one would
 | |
| modify these tables by modifying one's tt(PATH)
 | |
| (for the command hash table) or by creating appropriate shell parameters
 | |
| (for the named directory hash table).
 | |
| The choice of hash table to work on is determined by the tt(-d) option;
 | |
| without the option the command hash table is used, and with the option the
 | |
| named directory hash table is used.
 | |
| 
 | |
| Given no arguments, and neither the tt(-r) or tt(-f) options,
 | |
| the selected hash table will be listed in full.
 | |
| 
 | |
| The tt(-r) option causes the selected hash table to be emptied.
 | |
| It will be subsequently rebuilt in the normal fashion.
 | |
| The tt(-f) option causes the selected hash table to be fully
 | |
| rebuilt immediately.  For the command hash table this hashes
 | |
| all the absolute directories in the tt(PATH),
 | |
| and for the named directory hash table this adds all users' home directories.
 | |
| These two options cannot be used with any arguments.
 | |
| 
 | |
| The tt(-m) option causes the arguments to be taken as patterns
 | |
| (which should be quoted) and the elements of the hash table
 | |
| matching those patterns are printed.  This is the only way to display
 | |
| a limited selection of hash table elements.
 | |
| 
 | |
| For each var(name) with a corresponding var(value), put `var(name)' in
 | |
| the selected hash table, associating it with the pathname `var(value)'.
 | |
| In the command hash table, this means that
 | |
| whenever `var(name)' is used as a command argument, the shell will try
 | |
| to execute the file given by `var(value)'.
 | |
| In the named directory hash table, this means
 | |
| that `var(value)' may be referred to as `tt(~)var(name)'.
 | |
| 
 | |
| For each var(name) with no
 | |
| corresponding var(value), attempt to add var(name) to the hash table,
 | |
| checking what the appropriate tt(value) is in the normal manner for
 | |
| that hash table.  If an appropriate tt(value) can't be found, then
 | |
| the hash table will be unchanged.
 | |
| 
 | |
| The tt(-v) option causes hash table entries to be listed as they are
 | |
| added by explicit specification.  If has no effect if used with tt(-f).
 | |
| 
 | |
| If the tt(-L) flag is present, then each hash table entry is printed in
 | |
| the form of a call to hash.
 | |
| )
 | |
| alias(history)(fc -l)
 | |
| findex(integer)
 | |
| item(tt(integer) [ {tt(PLUS())|tt(-)}tt(Hghlprtux) ] \
 | |
| [ {tt(PLUS())|tt(-)}tt(LRZi) [ var(n) ] ] [ var(name)[tt(=)var(value)] ... ])(
 | |
| Equivalent to tt(typeset -i), except that options irrelevant to
 | |
| integers are not permitted.
 | |
| )
 | |
| findex(jobs)
 | |
| xitem(tt(jobs) [ tt(-dlprs) ] [ var(job) ... ])
 | |
| item(tt(jobs -Z) var(string))(
 | |
| Lists information about each given job, or all jobs
 | |
| if var(job) is omitted.  The tt(-l) flag lists process
 | |
| IDs, and the tt(-p) flag lists process groups.
 | |
| If the tt(-r) flag is specified only running jobs will be listed
 | |
| and if the tt(-s) flag is given only stopped jobs are shown.
 | |
| If the tt(-d) flag is given, the directory from which the job was
 | |
| started (which may not be the current directory of the job) will also
 | |
| be shown.
 | |
| 
 | |
| The tt(-Z) option replaces the shell's argument and environment space with
 | |
| the given string, truncated if necessary to fit.  This will normally be
 | |
| visible in tt(ps) (manref(ps)(1)) listings.  This feature is typically
 | |
| used by daemons, to indicate their state.
 | |
| )
 | |
| findex(kill)
 | |
| cindex(killing jobs)
 | |
| cindex(jobs, killing)
 | |
| xitem(tt(kill) [ tt(-s) var(signal_name) | tt(-n) var(signal_number) | \
 | |
| tt(-)var(sig) ] var(job) ...)
 | |
| item(tt(kill) tt(-l) [ var(sig) ... ])(
 | |
| Sends either tt(SIGTERM) or the specified signal to the given
 | |
| jobs or processes.
 | |
| Signals are given by number or by names, with or without the `tt(SIG)'
 | |
| prefix.
 | |
| If the signal being sent is not `tt(KILL)' or `tt(CONT)', then the job
 | |
| will be sent a `tt(CONT)' signal if it is stopped.
 | |
| The argument var(job) can be the process ID of a job
 | |
| not in the job list.
 | |
| In the second form, tt(kill -l), if var(sig) is not
 | |
| specified the signal names are listed.  Otherwise, for each
 | |
| var(sig) that is a name, the corresponding signal number is
 | |
| listed.  For each var(sig) that is a signal number or a number
 | |
| representing the exit status of a process which was terminated or
 | |
| stopped by a signal the name of the signal is printed.
 | |
| 
 | |
| On some systems, alternative signal names are allowed for a few signals.
 | |
| Typical examples are tt(SIGCHLD) and tt(SIGCLD) or tt(SIGPOLL) and
 | |
| tt(SIGIO), assuming they correspond to the same signal number.  tt(kill
 | |
| -l) will only list the preferred form, however tt(kill -l) var(alt) will
 | |
| show if the alternative form corresponds to a signal number.  For example,
 | |
| under Linux tt(kill -l IO) and tt(kill -l POLL) both output 29, hence
 | |
| tt(kill -IO) and tt(kill -POLL) have the same effect.
 | |
| 
 | |
| Many systems will allow process IDs to be negative to kill a process
 | |
| group or zero to kill the current process group.
 | |
| )
 | |
| findex(let)
 | |
| item(tt(let) var(arg) ...)(
 | |
| Evaluate each var(arg) as an arithmetic expression.
 | |
| See
 | |
| ifzman(the section `Arithmetic Evaluation' in zmanref(zshmisc))\
 | |
| ifnzman(noderef(Arithmetic Evaluation))
 | |
| for a description of arithmetic expressions.  The exit status is 0 if the
 | |
| value of the last expression is nonzero, 1 if it is zero, and 2 if
 | |
| an error occurred.
 | |
| )
 | |
| findex(limit)
 | |
| cindex(resource limits)
 | |
| cindex(limits, resource)
 | |
| item(tt(limit) [ tt(-hs) ] [ var(resource) [ var(limit) ] ] ...)(
 | |
| Set or display resource limits.  Unless the tt(-s) flag is given,
 | |
| the limit applies only the children of the shell.  If tt(-s) is
 | |
| given without other arguments, the resource limits of the current
 | |
| shell is set to the previously set resource limits of the children.
 | |
| 
 | |
| If var(limit) is not specified, print the current limit placed
 | |
| on var(resource), otherwise
 | |
| set the limit to the specified value.  If the tt(-h) flag
 | |
| is given, use hard limits instead of soft limits.
 | |
| If no var(resource) is given, print all limits.
 | |
| 
 | |
| When looping over multiple resources, the shell will abort immediately if
 | |
| it detects a badly formed argument.  However, if it fails to set a limit
 | |
| for some other reason it will continue trying to set the remaining limits.
 | |
| 
 | |
| var(resource) can be one of:
 | |
| 
 | |
| startsitem()
 | |
| sitem(tt(addressspace))(Maximum amount of address space used.)
 | |
| sitem(tt(aiomemorylocked))(Maximum amount of memory locked in RAM for AIO operations.)
 | |
| sitem(tt(aiooperations))(Maximum number of AIO operations.)
 | |
| sitem(tt(cachedthreads))(Maximum number of cached threads.)
 | |
| sitem(tt(coredumpsize))(Maximum size of a core dump.)
 | |
| sitem(tt(cputime))(Maximum CPU seconds per process.)
 | |
| sitem(tt(datasize))(Maximum data size (including stack) for each process.)
 | |
| sitem(tt(descriptors))(Maximum value for a file descriptor.)
 | |
| sitem(tt(filesize))(Largest single file allowed.)
 | |
| sitem(tt(kqueues))(Maximum number of kqueues allocated.)
 | |
| sitem(tt(maxproc))(Maximum number of processes.)
 | |
| sitem(tt(maxpthreads))(Maximum number of threads per process.)
 | |
| sitem(tt(memorylocked))(Maximum amount of memory locked in RAM.)
 | |
| sitem(tt(memoryuse))(Maximum resident set size.)
 | |
| sitem(tt(msgqueue))(Maximum number of bytes in POSIX message queues.)
 | |
| sitem(tt(posixlocks))(Maximum number of POSIX locks per user.)
 | |
| sitem(tt(pseudoterminals))(Maximum number of pseudo-terminals.)
 | |
| sitem(tt(resident))(Maximum resident set size.)
 | |
| sitem(tt(sigpending))(Maximum number of pending signals.)
 | |
| sitem(tt(sockbufsize))(Maximum size of all socket buffers.)
 | |
| sitem(tt(stacksize))(Maximum stack size for each process.)
 | |
| sitem(tt(swapsize))(Maximum amount of swap used.)
 | |
| sitem(tt(vmemorysize))(Maximum amount of virtual memory.)
 | |
| endsitem()
 | |
| 
 | |
| Which of these resource limits are available depends on the system.
 | |
| var(resource) can be abbreviated to any unambiguous prefix.  It
 | |
| can also be an integer, which corresponds to the integer defined
 | |
| for the resource by the operating system.
 | |
| 
 | |
| If argument corresponds to a number which is out of the range of the
 | |
| resources configured into the shell, the shell will try to read or write
 | |
| the limit anyway, and will report an error if this fails.  As the shell
 | |
| does not store such resources internally, an attempt to set the limit will
 | |
| fail unless the tt(-s) option is present.
 | |
| 
 | |
| var(limit) is a number, with an optional scaling factor, as follows:
 | |
| 
 | |
| startsitem()
 | |
| sitem(var(n)tt(h))(hours)
 | |
| sitem(var(n)tt(k))(kilobytes (default))
 | |
| sitem(var(n)tt(m))(megabytes or minutes)
 | |
| sitem(var(n)tt(g))(gigabytes)
 | |
| sitem([var(mm)tt(:)]var(ss))(minutes and seconds)
 | |
| endsitem()
 | |
| 
 | |
| The tt(limit) command is not made available by default when the
 | |
| shell starts in a mode emulating another shell.  It can be made available
 | |
| with the command `tt(zmodload -F zsh/rlimits b:limit)'.
 | |
| )
 | |
| findex(local)
 | |
| item(tt(local) [ {tt(PLUS())|tt(-)}tt(AHUahlprtux) ] \
 | |
| [ {tt(PLUS())|tt(-)}tt(EFLRZi) [ var(n) ] ] [ var(name)[tt(=)var(value)] ... ])(
 | |
| Same as tt(typeset), except that the options tt(-g), and
 | |
| tt(-f) are not permitted.  In this case the tt(-x) option does not force
 | |
| the use of tt(-g), i.e. exported variables will be local to functions.
 | |
| )
 | |
| findex(log)
 | |
| vindex(watch, use of)
 | |
| cindex(watching users)
 | |
| cindex(users, watching)
 | |
| item(tt(log))(
 | |
| List all users currently logged in who are affected by
 | |
| the current setting of the tt(watch) parameter.
 | |
| )
 | |
| findex(logout)
 | |
| item(tt(logout) [ var(n) ])(
 | |
| Same as tt(exit), except that it only works in a login shell.
 | |
| )
 | |
| prefix(noglob)
 | |
| findex(popd)
 | |
| item(tt(popd) [ tt(-q) ] [ {tt(PLUS())|tt(-)}var(n) ])(
 | |
| Remove an entry from the directory stack, and perform a tt(cd) to
 | |
| the new top directory.  With no argument, the current top entry is
 | |
| removed.  An argument of the form `tt(PLUS())var(n)' identifies a stack
 | |
| entry by counting from the left of the list shown by the tt(dirs) command,
 | |
| starting with zero.  An argument of the form tt(-)var(n) counts from the right.
 | |
| pindex(PUSHD_MINUS, use of)
 | |
| If the tt(PUSHD_MINUS) option is set, the meanings of `tt(PLUS())' and
 | |
| `tt(-)' in this context are swapped.
 | |
| 
 | |
| If the tt(-q) (quiet) option is specified, the hook function tt(chpwd)
 | |
| and the functions in the array tt($chpwd_functions) are not called,
 | |
| and the new directory stack is not printed.  This is useful for calls to
 | |
| tt(popd) that do not change the environment seen by an interactive user.
 | |
| )
 | |
| findex(print)
 | |
| xitem(tt(print )[ tt(-abcDilmnNoOpPrsSz) ] [ tt(-u) var(n) ] [ tt(-f) var(format) ] [ tt(-C) var(cols) ])
 | |
| item(SPACES()[ tt(-v) var(name) ] [ tt(-xX) var(tabstop) ] [ tt(-R) [ tt(-en) ]] [ var(arg) ... ])(
 | |
| With the `tt(-f)' option the arguments are printed as described by tt(printf).
 | |
| With no flags or with the flag `tt(-)', the arguments are printed on
 | |
| the standard output as described by tt(echo), with the following differences:
 | |
| the escape sequence `tt(\M-)var(x)' (or `tt(\M)var(x)') metafies the character
 | |
| var(x) (sets the highest bit),
 | |
| `tt(\C-)var(x)' (or `tt(\C)var(x)') produces a control character
 | |
| (`tt(\C-@)' and `tt(\C-?)' give the characters NULL and delete),
 | |
| a character code in octal is represented by `tt(\)var(NNN)'
 | |
| (instead of `tt(\0)var(NNN)'),
 | |
| and `tt(\E)' is a synonym for `tt(\e)'.
 | |
| Finally, if not in an escape
 | |
| sequence, `tt(\)' escapes the following character and is not printed.
 | |
| 
 | |
| startitem()
 | |
| item(tt(-a))(
 | |
| Print arguments with the column incrementing first.  Only useful with the
 | |
| tt(-c) and tt(-C) options.
 | |
| )
 | |
| item(tt(-b))(
 | |
| Recognize all the escape sequences defined for the tt(bindkey) command,
 | |
| see 
 | |
| ifzman(the section `Zle Builtins' in zmanref(zshzle))\
 | |
| ifnzman(noderef(Zle Builtins))\
 | |
| .
 | |
| )
 | |
| item(tt(-c))(
 | |
| Print the arguments in columns.  Unless tt(-a) is also given, arguments are
 | |
| printed with the row incrementing first.
 | |
| )
 | |
| item(tt(-C) var(cols))(
 | |
| Print the arguments in var(cols) columns.  Unless tt(-a) is also given,
 | |
| arguments are printed with the row incrementing first.
 | |
| )
 | |
| item(tt(-D))(
 | |
| Treat the arguments as paths, replacing directory prefixes with tt(~)
 | |
| expressions corresponding to directory names, as appropriate.
 | |
| )
 | |
| item(tt(-i))(
 | |
| If given together with tt(-o) or tt(-O), sorting is performed
 | |
| case-independently.
 | |
| )
 | |
| item(tt(-l))(
 | |
| Print the arguments separated by newlines instead of spaces.
 | |
| )
 | |
| item(tt(-m))(
 | |
| Take the first argument as a pattern (should be quoted), and remove
 | |
| it from the argument list together with subsequent arguments that
 | |
| do not match this pattern.
 | |
| )
 | |
| item(tt(-n))(
 | |
| Do not add a newline to the output.
 | |
| )
 | |
| item(tt(-N))(
 | |
| Print the arguments separated and terminated by nulls.
 | |
| )
 | |
| item(tt(-o))(
 | |
| Print the arguments sorted in ascending order.
 | |
| )
 | |
| item(tt(-O))(
 | |
| Print the arguments sorted in descending order.
 | |
| )
 | |
| item(tt(-p))(
 | |
| Print the arguments to the input of the coprocess.
 | |
| )
 | |
| item(tt(-P))(
 | |
| Perform prompt expansion (see
 | |
| ifzman(EXPANSION OF PROMPT SEQUENCES in zmanref(zshmisc))\
 | |
| ifnzman(noderef(Prompt Expansion))\
 | |
| ).
 | |
| In combination with `tt(-f)',
 | |
| prompt escape sequences are parsed only within interpolated arguments,
 | |
| not within the format string.
 | |
| )
 | |
| item(tt(-r))(
 | |
| Ignore the escape conventions of tt(echo).
 | |
| )
 | |
| item(tt(-R))(
 | |
| Emulate the BSD tt(echo) command, which does not process escape sequences
 | |
| unless the tt(-e) flag is given.  The tt(-n) flag suppresses the trailing
 | |
| newline.  Only the tt(-e) and tt(-n) flags are recognized after
 | |
| tt(-R); all other arguments and options are printed.
 | |
| )
 | |
| item(tt(-s))(
 | |
| Place the results in the history list instead of on the standard output.
 | |
| Each argument to the tt(print) command is treated as a single word in the
 | |
| history, regardless of its content.
 | |
| )
 | |
| item(tt(-S))(
 | |
| Place the results in the history list instead of on the standard output.
 | |
| In this case only a single argument is allowed; it will be split into
 | |
| words as if it were a full shell command line.  The effect is
 | |
| similar to reading the line from a history file with the
 | |
| tt(HIST_LEX_WORDS) option active.
 | |
| )
 | |
| item(tt(-u) var(n))(
 | |
| Print the arguments to file descriptor var(n).
 | |
| )
 | |
| item(tt(-v) var(name))(
 | |
| Store the printed arguments as the value of the parameter var(name).
 | |
| )
 | |
| item(tt(-x) var(tab-stop))(
 | |
| Expand leading tabs on each line of output in the printed string
 | |
| assuming a tab stop every var(tab-stop) characters.  This is appropriate
 | |
| for formatting code that may be indented with tabs.  Note that leading
 | |
| tabs of any argument to print, not just the first, are expanded, even if
 | |
| tt(print) is using spaces to separate arguments (the column count
 | |
| is maintained across arguments but may be incorrect on output
 | |
| owing to previous unexpanded tabs).
 | |
| 
 | |
| The start of the output of each print command is assumed to be aligned
 | |
| with a tab stop.  Widths of multibyte characters are handled if the
 | |
| option tt(MULTIBYTE) is in effect.  This option is ignored if other
 | |
| formatting options are in effect, namely column alignment or
 | |
| tt(printf) style, or if output is to a special location such as shell
 | |
| history or the command line editor.
 | |
| )
 | |
| item(tt(-X) var(tab-stop))(
 | |
| This is similar to tt(-x), except that all tabs in the printed string
 | |
| are expanded.  This is appropriate if tabs in the arguments are
 | |
| being used to produce a table format.
 | |
| )
 | |
| item(tt(-z))(
 | |
| Push the arguments onto the editing buffer stack, separated by spaces.
 | |
| )
 | |
| enditem()
 | |
| 
 | |
| If any of `tt(-m)', `tt(-o)' or `tt(-O)' are used in combination with
 | |
| `tt(-f)' and there are no arguments (after the removal process in the
 | |
| case of `tt(-m)') then nothing is printed.
 | |
| )
 | |
| findex(printf)
 | |
| item(tt(printf) [ -v var(name) ] var(format) [ var(arg) ... ])(
 | |
| Print the arguments according to the format specification. Formatting
 | |
| rules are the same as used in C. The same escape sequences as for tt(echo)
 | |
| are recognised in the format. All C conversion specifications ending in
 | |
| one of tt(csdiouxXeEfgGn) are handled. In addition to this, `tt(%b)' can be
 | |
| used instead of `tt(%s)' to cause escape sequences in the argument to be
 | |
| recognised and `tt(%q)' can be used to quote the argument in such a way
 | |
| that allows it to be reused as shell input. With the numeric format
 | |
| specifiers, if the corresponding argument starts with a quote character,
 | |
| the numeric value of the following character is used as the number to
 | |
| print; otherwise the argument is evaluated as an arithmetic expression. See
 | |
| ifzman(the section `Arithmetic Evaluation' in zmanref(zshmisc))\
 | |
| ifnzman(noderef(Arithmetic Evaluation))
 | |
| for a description of arithmetic
 | |
| expressions. With `tt(%n)', the corresponding argument is taken as an
 | |
| identifier which is created as an integer parameter.
 | |
| 
 | |
| Normally, conversion specifications are applied to each argument in order
 | |
| but they can explicitly specify the var(n)th argument is to be used by
 | |
| replacing `tt(%)' by `tt(%)var(n)tt($)' and `tt(*)' by `tt(*)var(n)tt($)'.
 | |
| It is recommended that you do not mix references of this explicit style
 | |
| with the normal style and the handling of such mixed styles may be subject
 | |
| to future change.
 | |
| 
 | |
| If arguments remain unused after formatting, the format string is reused
 | |
| until all arguments have been consumed. With the tt(print) builtin, this
 | |
| can be suppressed by using the tt(-r) option. If more arguments are
 | |
| required by the format than have been specified, the behaviour is as if
 | |
| zero or an empty string had been specified as the argument.
 | |
| 
 | |
| The tt(-v) option causes the output to be stored as the value of the
 | |
| parameter var(name), instead of printed. If var(name) is an array and
 | |
| the format string is reused when consuming arguments then one
 | |
| array element will be used for each use of the format string.
 | |
| )
 | |
| findex(pushd)
 | |
| pindex(PUSHD_TO_HOME, use of)
 | |
| pindex(PUSHD_MINUS, use of)
 | |
| pindex(CDABLE_VARS, use of)
 | |
| pindex(PUSHD_SILENT, use of)
 | |
| xitem(tt(pushd) [ tt(-qsLP) ] [ var(arg) ])
 | |
| xitem(tt(pushd) [ tt(-qsLP) ] var(old) var(new))
 | |
| item(tt(pushd) [ tt(-qsLP) ] {tt(PLUS())|tt(-)}var(n))(
 | |
| Change the current directory, and push the old current directory
 | |
| onto the directory stack.  In the first form, change the
 | |
| current directory to var(arg).
 | |
| If var(arg) is not specified, change to the second directory
 | |
| on the stack (that is, exchange the top two entries), or
 | |
| change to tt($HOME) if the tt(PUSHD_TO_HOME)
 | |
| option is set or if there is only one entry on the stack.
 | |
| Otherwise, var(arg) is interpreted as it would be by tt(cd).
 | |
| The meaning of var(old) and var(new) in the second form is also
 | |
| the same as for tt(cd).
 | |
| 
 | |
| The third form of tt(pushd) changes directory by rotating the
 | |
| directory list.  An argument of the form `tt(PLUS())var(n)' identifies a stack
 | |
| entry by counting from the left of the list shown by the tt(dirs)
 | |
| command, starting with zero.  An argument of the form `tt(-)var(n)' counts
 | |
| from the right.  If the tt(PUSHD_MINUS) option is set, the meanings
 | |
| of `tt(PLUS())' and `tt(-)' in this context are swapped.
 | |
| 
 | |
| If the tt(-q) (quiet) option is specified, the hook function tt(chpwd)
 | |
| and the functions in the array tt($chpwd_functions) are not called,
 | |
| and the new directory stack is not printed.  This is useful for calls to
 | |
| tt(pushd) that do not change the environment seen by an interactive user.
 | |
| 
 | |
| If the option tt(-q) is not specified and the shell option tt(PUSHD_SILENT)
 | |
| is not set, the directory stack will be printed after a tt(pushd) is
 | |
| performed.
 | |
| 
 | |
| The options tt(-s), tt(-L) and tt(-P) have the same meanings as for the
 | |
| tt(cd) builtin.
 | |
| )
 | |
| findex(pushln)
 | |
| item(tt(pushln) [ var(arg) ... ])(
 | |
| Equivalent to tt(print -nz).
 | |
| )
 | |
| findex(pwd)
 | |
| pindex(CHASE_LINKS, use of)
 | |
| item(tt(pwd) [ tt(-rLP) ])(
 | |
| Print the absolute pathname of the current working directory.
 | |
| If the tt(-r) or the tt(-P) flag is specified, or the tt(CHASE_LINKS)
 | |
| option is set and the tt(-L) flag is not given, the printed path will not
 | |
| contain symbolic links.
 | |
| )
 | |
| alias(r)(fc -e -)
 | |
| findex(read)
 | |
| vindex(IFS, use of)
 | |
| redef(SPACES)(0)(tt(ifztexi(NOTRANS(@ @ @ @ @ ))ifnztexi(     )))
 | |
| xitem(tt(read )[ tt(-rszpqAclneE) ] [ tt(-t) [ var(num) ] ] [ tt(-k) [ var(num) ] ] [ tt(-d) var(delim) ])
 | |
| item(SPACES()[ tt(-u) var(n) ] [ var(name)[tt(?)var(prompt)] ] [ var(name) ...  ])(
 | |
| vindex(REPLY, use of)
 | |
| vindex(reply, use of)
 | |
| Read one line and break it into fields using the characters
 | |
| in tt($IFS) as separators, except as noted below.
 | |
| The first field is assigned to the first var(name), the second field
 | |
| to the second var(name), etc., with leftover
 | |
| fields assigned to the last var(name).
 | |
| If var(name) is omitted then
 | |
| tt(REPLY) is used for scalars and tt(reply) for arrays.
 | |
| 
 | |
| startitem()
 | |
| item(tt(-r))(
 | |
| Raw mode: a `tt(\)' at the end of a line does not signify line
 | |
| continuation and backslashes in the line don't quote the following
 | |
| character and are not removed.
 | |
| )
 | |
| item(tt(-s))(
 | |
| Don't echo back characters if reading from the terminal.
 | |
| )
 | |
| item(tt(-q))(
 | |
| Read only one character from the terminal and set var(name) to
 | |
| `tt(y)' if this character was `tt(y)' or `tt(Y)' and to `tt(n)' otherwise.
 | |
| With this flag set the return status is zero only if the character was
 | |
| `tt(y)' or `tt(Y)'.  This option may be used with a timeout (see tt(-t)); if
 | |
| the read times out, or encounters end of file, status 2 is returned.  Input is
 | |
| read from the terminal unless one of tt(-u) or tt(-p) is present.  This option
 | |
| may also be used within zle widgets.
 | |
| )
 | |
| item(tt(-k) [ var(num) ])(
 | |
| Read only one (or var(num)) characters.  All are assigned to the first
 | |
| var(name), without word splitting.  This flag is ignored when tt(-q) is
 | |
| present.  Input is read from the terminal unless one of tt(-u) or tt(-p)
 | |
| is present.  This option may also be used within zle widgets.
 | |
| 
 | |
| Note that despite the mnemonic `key' this option does read full
 | |
| characters, which may consist of multiple bytes if the option
 | |
| tt(MULTIBYTE) is set.
 | |
| )
 | |
| item(tt(-z))(
 | |
| Read one entry from the editor buffer stack and assign it to the first
 | |
| var(name), without word splitting.  Text is pushed onto the stack with
 | |
| `tt(print -z)' or with tt(push-line) from the line editor (see
 | |
| ifzman(zmanref(zshzle))\
 | |
| ifnzman(noderef(Zsh Line Editor))\
 | |
| ).  This flag is ignored when the tt(-k) or tt(-q) flags are present.
 | |
| )
 | |
| xitem(tt(-e))
 | |
| item(tt(-E))(
 | |
| The input read is printed (echoed) to the standard output.  If the tt(-e)
 | |
| flag is used, no input is assigned to the parameters.
 | |
| )
 | |
| item(tt(-A))(
 | |
| The first var(name) is taken as the name of an array and all words are
 | |
| assigned to it.
 | |
| )
 | |
| xitem(tt(-c))
 | |
| item(tt(-l))(
 | |
| These flags are allowed only if called inside a
 | |
| function used for completion (specified with the tt(-K) flag to
 | |
| tt(compctl)).  If the tt(-c) flag is given, the words of the
 | |
| current command are read. If the tt(-l) flag is given, the whole
 | |
| line is assigned as a scalar.  If both flags are present, tt(-l)
 | |
| is used and tt(-c) is ignored.
 | |
| )
 | |
| item(tt(-n))(
 | |
| Together with tt(-c), the number of the word the cursor is on is
 | |
| read.  With tt(-l), the index of the character the cursor is on is
 | |
| read.  Note that the command name is word number 1, not word 0,
 | |
| and that when the cursor is at the end of the line, its character
 | |
| index is the length of the line plus one.
 | |
| )
 | |
| item(tt(-u) var(n))(
 | |
| Input is read from file descriptor var(n).
 | |
| )
 | |
| item(tt(-p))(
 | |
| Input is read from the coprocess.
 | |
| )
 | |
| item(tt(-d) var(delim))(
 | |
| Input is terminated by the first character of var(delim) instead of
 | |
| by newline.
 | |
| )
 | |
| item(tt(-t) [ var(num) ])(
 | |
| Test if input is available before attempting to read.  If var(num)
 | |
| is present, it must begin with a digit and will be evaluated
 | |
| to give a number of seconds, which may be a floating point number;
 | |
| in this case the read times out if input is not available within this
 | |
| time.  If var(num) is not present, it is taken to be zero, so that
 | |
| tt(read) returns immediately if no input is available.
 | |
| If no input is available, return status 1 and do not set any variables.
 | |
| ifzman( )
 | |
| This option is not available when reading from the editor buffer with
 | |
| tt(-z), when called from within completion with tt(-c) or tt(-l), with
 | |
| tt(-q) which clears the input queue before reading, or within zle where
 | |
| other mechanisms should be used to test for input.
 | |
| ifzman( )
 | |
| Note that read does not attempt to alter the input processing mode.  The
 | |
| default mode is canonical input, in which an entire line is read at a time,
 | |
| so usually `tt(read -t)' will not read anything until an entire line has
 | |
| been typed.  However, when reading from the terminal with tt(-k)
 | |
| input is processed one key at a time; in this case, only availability of
 | |
| the first character is tested, so that e.g. `tt(read -t -k 2)' can still
 | |
| block on the second character.  Use two instances of `tt(read -t -k)' if
 | |
| this is not what is wanted.
 | |
| )
 | |
| enditem()
 | |
| 
 | |
| If the first argument contains a `tt(?)', the remainder of this
 | |
| word is used as a var(prompt) on standard error when the shell
 | |
| is interactive.
 | |
| 
 | |
| The value (exit status) of tt(read) is 1 when an end-of-file is
 | |
| encountered, or when tt(-c) or tt(-l) is present and the command is
 | |
| not called from a tt(compctl) function, or as described for tt(-q).
 | |
| Otherwise the value is 0.
 | |
| 
 | |
| The behavior of some combinations of the tt(-k), tt(-p), tt(-q), tt(-u)
 | |
| and tt(-z) flags is undefined.  Presently tt(-q) cancels all the others,
 | |
| tt(-p) cancels tt(-u), tt(-k) cancels tt(-z), and otherwise tt(-z)
 | |
| cancels both tt(-p) and tt(-u).
 | |
| 
 | |
| The tt(-c) or tt(-l) flags cancel any and all of tt(-kpquz).
 | |
| )
 | |
| cindex(parameters, marking readonly)
 | |
| item(tt(readonly))(
 | |
| Same as tt(typeset -r).  With the tt(POSIX_BUILTINS) option set, same
 | |
| as tt(typeset -gr).
 | |
| )
 | |
| alias(rehash)(hash -r)
 | |
| findex(return)
 | |
| cindex(functions, returning from)
 | |
| item(tt(return) [ var(n) ])(
 | |
| Causes a shell function or `tt(.)' script to return to
 | |
| the invoking script with the return status specified by
 | |
| an arithmetic expression var(n). If var(n)
 | |
| is omitted, the return status is that of the last command
 | |
| executed.
 | |
| 
 | |
| If tt(return) was executed from a trap in a tt(TRAP)var(NAL) function,
 | |
| the effect is different for zero and non-zero return status.  With zero
 | |
| status (or after an implicit return at the end of the trap), the shell
 | |
| will return to whatever it was previously processing; with a non-zero
 | |
| status, the shell will behave as interrupted except that the return
 | |
| status of the trap is retained.  Note that the numeric value of the signal
 | |
| which caused the trap is passed as the first argument, so the statement
 | |
| `tt(return $((128PLUS()$1)))' will return the same status as if the signal
 | |
| had not been trapped.
 | |
| )
 | |
| module(sched)(zsh/sched)
 | |
| findex(set)
 | |
| cindex(parameters, listing)
 | |
| cindex(parameters, positional)
 | |
| cindex(parameters, setting array)
 | |
| cindex(array parameters, setting)
 | |
| pindex(KSH_ARRAYS, use of)
 | |
| redef(SPACES)(0)(tt(ifztexi(NOTRANS(@ @ @ @ ))ifnztexi(    )))
 | |
| xitem(tt(set )[ {tt(PLUS())|tt(-)}var(options) | {tt(PLUS())|tt(-)}tt(o) [ var(option_name) ] ] ... [ {tt(PLUS())|tt(-)}tt(A) [ var(name) ] ])
 | |
| item(SPACES()[ var(arg) ... ])(
 | |
| Set the options for the shell and/or set the positional parameters, or
 | |
| declare and set an array.  If the tt(-s) option is given, it causes the
 | |
| specified arguments to be sorted before assigning them to the positional
 | |
| parameters (or to the array var(name) if tt(-A) is used).  With tt(PLUS()s)
 | |
| sort arguments in descending order.  For the meaning of the other flags, see
 | |
| ifzman(zmanref(zshoptions))\
 | |
| ifnzman(noderef(Options))\
 | |
| .  Flags may be specified by name using the tt(-o) option. If no option
 | |
| name is supplied with tt(-o), the current option states are printed:  see
 | |
| the description of tt(setopt) below for more information on the format.
 | |
| With tt(PLUS()o) they are printed in a form that can be used as input
 | |
| to the shell.
 | |
| 
 | |
| If the tt(-A) flag is specified, var(name) is set to an array containing
 | |
| the given var(arg)s; if no var(name) is specified, all arrays are printed
 | |
| together with their values.
 | |
| 
 | |
| If tt(PLUS()A) is used and var(name) is an array, the
 | |
| given arguments will replace the initial elements of that array; if no
 | |
| var(name) is specified, all arrays are printed without their values.
 | |
| 
 | |
| The behaviour of arguments after tt(-A) var(name) or tt(PLUS()A) var(name)
 | |
| depends on whether the option tt(KSH_ARRAYS) is set.  If it is not set, all
 | |
| arguments following var(name) are treated as values for the array,
 | |
| regardless of their form.  If the option is set, normal option processing
 | |
| continues at that point; only regular arguments are treated as values for
 | |
| the array.  This means that
 | |
| 
 | |
| example(set -A array -x -- foo)
 | |
| 
 | |
| sets tt(array) to `tt(-x -)tt(- foo)' if tt(KSH_ARRAYS) is not set, but sets
 | |
| the array to tt(foo) and turns on the option `tt(-x)' if it is set.
 | |
| 
 | |
| If the tt(-A) flag is not present, but there are arguments beyond the
 | |
| options, the positional parameters are set.  If the option list (if any)
 | |
| is terminated by `tt(-)tt(-)', and there are no further arguments, the
 | |
| positional parameters will be unset.
 | |
| 
 | |
| If no arguments and no `tt(-)tt(-)' are given, then the names and values of
 | |
| all parameters are printed on the standard output.  If the only argument is
 | |
| `tt(PLUS())', the names of all parameters are printed.
 | |
| 
 | |
| For historical reasons, `tt(set -)' is treated as `tt(set +xv)'
 | |
| and `tt(set -) var(args)' as `tt(set +xv --) var(args)' when in
 | |
| any other emulation mode than zsh's native mode.
 | |
| )
 | |
| module(setcap)(zsh/cap)
 | |
| findex(setopt)
 | |
| cindex(options, setting)
 | |
| item(tt(setopt) [ {tt(PLUS())|tt(-)}var(options) | \
 | |
| {tt(PLUS())|tt(-)}tt(o) var(option_name) ] [ tt(-m) ] [ var(name) ... ])(
 | |
| Set the options for the shell.  All options specified either
 | |
| with flags or by name are set.
 | |
| 
 | |
| If no arguments are supplied, the names of all options currently set are
 | |
| printed.  The form is chosen so as to minimize the differences from the
 | |
| default options for the current emulation (the default emulation being
 | |
| native tt(zsh), shown as tt(<Z>) in
 | |
| ifzman(zmanref(zshoptions))\
 | |
| ifnzman(noderef(Description of Options))).
 | |
| Options that are on by default for the emulation are
 | |
| shown with the prefix tt(no) only if they are off, while other options are
 | |
| shown without the prefix tt(no) and only if they are on.  In addition to
 | |
| options changed from the default state by the user, any options activated
 | |
| automatically by the shell (for example, tt(SHIN_STDIN) or tt(INTERACTIVE))
 | |
| will be shown in the list.  The format is further modified by the option
 | |
| tt(KSH_OPTION_PRINT), however the rationale for choosing options with
 | |
| or without the tt(no) prefix remains the same in this case.
 | |
| 
 | |
| If the tt(-m) flag is given the arguments are taken as patterns
 | |
| (which should be quoted to protect them from filename expansion), and all
 | |
| options with names matching these patterns are set.
 | |
| 
 | |
| Note that a bad option name does not cause execution of subsequent shell
 | |
| code to be aborted; this is behaviour is different from that of `tt(set
 | |
| -o)'.  This is because tt(set) is regarded as a special builtin by the
 | |
| POSIX standard, but tt(setopt) is not.
 | |
| )
 | |
| findex(shift)
 | |
| cindex(parameters, positional)
 | |
| item(tt(shift) [ tt(-p) ] [ var(n) ] [ var(name) ... ])(
 | |
| The positional parameters tt(${)var(n)PLUS()1tt(}) ... are renamed
 | |
| to tt($1) ..., where var(n) is an arithmetic expression that
 | |
| defaults to 1.
 | |
| If any var(name)s are given then the arrays with these names are
 | |
| shifted instead of the positional parameters.
 | |
| 
 | |
| If the option tt(-p) is given arguments are instead removed (popped)
 | |
| from the end rather than the start of the array.
 | |
| )
 | |
| findex(source)
 | |
| item(tt(source) var(file) [ var(arg) ... ])(
 | |
| Same as `tt(.)', except that the current directory is always searched and
 | |
| is always searched first, before directories in tt($path).
 | |
| )
 | |
| module(stat)(zsh/stat)
 | |
| findex(suspend)
 | |
| cindex(shell, suspending)
 | |
| cindex(suspending the shell)
 | |
| item(tt(suspend) [ tt(-f) ])(
 | |
| Suspend the execution of the shell (send it a tt(SIGTSTP))
 | |
| until it receives a tt(SIGCONT).
 | |
| Unless the tt(-f) option is given, this will refuse to suspend a login shell.
 | |
| )
 | |
| findex(test)
 | |
| xitem(tt(test) [ var(arg) ... ])
 | |
| item(tt([) [ var(arg) ... ] tt(]))(
 | |
| Like the system version of tt(test).  Added for compatibility;
 | |
| use conditional expressions instead (see noderef(Conditional Expressions)).
 | |
| The main differences between the conditional expression syntax and the
 | |
| tt(test) and tt([) builtins are:  these commands are not handled
 | |
| syntactically, so for example an empty variable expansion may cause an
 | |
| argument to be omitted; syntax errors cause status 2 to be returned instead
 | |
| of a shell error; and arithmetic operators expect integer arguments rather
 | |
| than arithmetic expressions.
 | |
| 
 | |
| The command attempts to implement POSIX and its extensions where these
 | |
| are specified.  Unfortunately there are intrinsic ambiguities in
 | |
| the syntax; in particular there is no distinction between test operators
 | |
| and strings that resemble them.  The standard attempts to resolve these
 | |
| for small numbers of arguments (up to four); for five or more arguments
 | |
| compatibility cannot be relied on.  Users are urged wherever possible to
 | |
| use the `tt([[)' test syntax which does not have these ambiguities.
 | |
| )
 | |
| findex(times)
 | |
| cindex(shell, timing)
 | |
| cindex(timing the shell)
 | |
| item(tt(times))(
 | |
| Print the accumulated user and system times for the shell
 | |
| and for processes run from the shell.
 | |
| )
 | |
| findex(trap)
 | |
| cindex(signals, trapping)
 | |
| cindex(trapping signals)
 | |
| item(tt(trap) [ var(arg) ] [ var(sig) ... ])(
 | |
| var(arg) is a series of commands (usually quoted to protect it from
 | |
| immediate evaluation by the shell) to be read and executed when the shell
 | |
| receives any of the signals specified by one or more var(sig) args.
 | |
| Each var(sig) can be given as a number,
 | |
| or as the name of a signal either with or without the string tt(SIG)
 | |
| in front (e.g. 1, HUP, and SIGHUP are all the same signal).
 | |
| 
 | |
| If var(arg) is `tt(-)', then the specified signals are reset to their
 | |
| defaults, or, if no var(sig) args are present, all traps are reset.
 | |
| 
 | |
| If var(arg) is an empty string, then the specified signals
 | |
| are ignored by the shell (and by the commands it invokes).
 | |
| 
 | |
| If var(arg) is omitted but one or more var(sig) args are provided (i.e.
 | |
| the first argument is a valid signal number or name), the effect is the
 | |
| same as if var(arg) had been specified as `tt(-)'.
 | |
| 
 | |
| The tt(trap) command with no arguments prints a list of commands
 | |
| associated with each signal.
 | |
| 
 | |
| If var(sig) is tt(ZERR) then var(arg) will be executed
 | |
| after each command with a nonzero exit status.  tt(ERR) is an alias
 | |
| for tt(ZERR) on systems that have no tt(SIGERR) signal (this is the
 | |
| usual case).
 | |
| 
 | |
| If var(sig) is tt(DEBUG) then var(arg) will be executed
 | |
| before each command if the option tt(DEBUG_BEFORE_CMD) is set
 | |
| (as it is by default), else after each command.  Here, a `command' is
 | |
| what is described as a `sublist' in the shell grammar, see
 | |
| ifnzman(noderef(Simple Commands & Pipelines))\
 | |
| ifzman(the section SIMPLE COMMANDS & PIPELINES in zmanref(zshmisc)).
 | |
| If tt(DEBUG_BEFORE_CMD) is set various additional features are available.
 | |
| First, it is possible to skip the next command by setting the option
 | |
| tt(ERR_EXIT); see the description of the tt(ERR_EXIT) option in
 | |
| ifzman(zmanref(zshoptions))\
 | |
| ifnzman(noderef(Description of Options)).  Also, the shell parameter
 | |
| tt(ZSH_DEBUG_CMD) is set to the string corresponding to the command
 | |
| to be executed following the trap.  Note that this string is reconstructed
 | |
| from the internal format and may not be formatted the same way as the
 | |
| original text.  The parameter is unset after the trap is executed.
 | |
| 
 | |
| If var(sig) is tt(0) or tt(EXIT)
 | |
| and the tt(trap) statement is executed inside the body of a function,
 | |
| then the command var(arg) is executed after the function completes.
 | |
| The value of tt($?) at the start of execution is the exit status of the
 | |
| shell or the return status of the function exiting.
 | |
| If var(sig) is tt(0) or tt(EXIT)
 | |
| and the tt(trap) statement is not executed inside the body of a function,
 | |
| then the command var(arg) is executed when the shell terminates; the
 | |
| trap runs before any tt(zshexit) hook functions.
 | |
| 
 | |
| tt(ZERR), tt(DEBUG), and tt(EXIT) traps are not executed inside other
 | |
| traps.  tt(ZERR) and tt(DEBUG) traps are kept within subshells, while
 | |
| other traps are reset.
 | |
| 
 | |
| Note that traps defined with the tt(trap) builtin are slightly different
 | |
| from those defined as `tt(TRAP)var(NAL) () { ... }', as the latter have
 | |
| their own function environment (line numbers, local variables, etc.) while
 | |
| the former use the environment of the command in which they were called.
 | |
| For example,
 | |
| 
 | |
| example(trap 'print $LINENO' DEBUG)
 | |
| 
 | |
| will print the line number of a command executed after it has run, while
 | |
| 
 | |
| example(TRAPDEBUG+LPAR()RPAR() { print $LINENO; })
 | |
| 
 | |
| will always print the number zero.
 | |
| 
 | |
| Alternative signal names are allowed as described under tt(kill) above.
 | |
| Defining a trap under either name causes any trap under an alternative
 | |
| name to be removed.  However, it is recommended that for consistency
 | |
| users stick exclusively to one name or another.
 | |
| )
 | |
| findex(true)
 | |
| cindex(doing nothing, successfully)
 | |
| item(tt(true) [ var(arg) ... ])(
 | |
| Do nothing and return an exit status of 0.
 | |
| )
 | |
| findex(ttyctl)
 | |
| cindex(tty, freezing)
 | |
| item(tt(ttyctl) [ tt(-fu) ])(
 | |
| The tt(-f) option freezes the tty (i.e. terminal or terminal emulator), and
 | |
| tt(-u) unfreezes it.
 | |
| When the tty is frozen, no changes made to the tty settings by
 | |
| external programs will be honored by the shell, except for changes in the
 | |
| size of the screen; the shell will
 | |
| simply reset the settings to their previous values as soon as each
 | |
| command exits or is suspended.  Thus, tt(stty) and similar programs have
 | |
| no effect when the tty is frozen.  Freezing the tty does not cause
 | |
| the current state to be remembered: instead, it causes future changes
 | |
| to the state to be blocked.
 | |
| 
 | |
| Without options it reports whether the terminal is frozen or not.
 | |
| 
 | |
| Note that, regardless of whether the tty is frozen or not, the
 | |
| shell needs to change the settings when the line editor starts, so
 | |
| unfreezing the tty does not guarantee settings made on the
 | |
| command line are preserved.  Strings of commands run between
 | |
| editing the command line will see a consistent tty state.
 | |
| See also the shell variable tt(STTY) for a means of initialising
 | |
| the tty before running external commands.
 | |
| )
 | |
| findex(type)
 | |
| item(tt(type) [ tt(-wfpamsS) ] var(name) ...)(
 | |
| Equivalent to tt(whence -v).
 | |
| )
 | |
| findex(typeset)
 | |
| cindex(parameters, setting)
 | |
| cindex(parameters, declaring)
 | |
| redef(SPACES)(0)(tt(ifztexi(NOTRANS(@ @ @ @ @ @ @ @ ))ifnztexi(        )))
 | |
| xitem(tt(typeset )[ {tt(PLUS())|tt(-)}tt(AHUaghlmprtux) ] \
 | |
| [ {tt(PLUS())|tt(-)}tt(EFLRZi) [ var(n) ] ])
 | |
| xitem(SPACES()[ tt(+) ] [ var(name)[tt(=)var(value)] ... ])
 | |
| xitem(tt(typeset )tt(-T) [ {tt(PLUS())|tt(-)}tt(Uglprux) ] [ {tt(PLUS())|tt(-)}tt(LRZ) [ var(n) ] ])
 | |
| xitem(SPACES()[ tt(+) | var(SCALAR)[tt(=)var(value)] var(array)[tt(=LPAR())var(value) ...tt(RPAR())] [ var(sep) ] ])
 | |
| item(tt(typeset) tt(-f) [ {tt(PLUS())|tt(-)}tt(TUkmtuz) ] [ tt(+) ] [ var(name) ... ])(
 | |
| Set or display attributes and values for shell parameters.
 | |
| 
 | |
| Except as noted below for control flags that change the behavior,
 | |
| a parameter is created for each var(name) that does not already refer
 | |
| to one.  When inside a function, a new parameter is created for every
 | |
| var(name) (even those that already exist), and is unset again when the
 | |
| function completes.  See
 | |
| ifzman(`Local Parameters' in zmanref(zshparam))\
 | |
| ifnzman(noderef(Local Parameters))\
 | |
| .  The same rules apply to special shell parameters, which
 | |
| retain their special attributes when made local.
 | |
| 
 | |
| For each var(name)tt(=)var(value) assignment, the parameter
 | |
| var(name) is set to var(value).
 | |
| 
 | |
| If the shell option tt(TYPESET_SILENT) is not set, for each remaining
 | |
| var(name) that refers to a parameter that is already set, the name and
 | |
| value of the parameter are printed in the form of an assignment.
 | |
| Nothing is printed for newly-created parameters, or when any attribute
 | |
| flags listed below are given along with the var(name).  Using
 | |
| `tt(PLUS())' instead of minus to introduce an attribute turns it off.
 | |
| 
 | |
| If no var(name) is present, the names and values of all parameters are
 | |
| printed.  In this case the attribute flags restrict the display to only
 | |
| those parameters that have the specified attributes, and using `tt(PLUS())'
 | |
| rather than `tt(-)' to introduce the flag suppresses printing of the values
 | |
| of parameters when there is no parameter name.
 | |
| 
 | |
| All forms of the command handle scalar assignment.  Array assignment is
 | |
| possible if any of the reserved words tt(declare), tt(export), tt(float),
 | |
| tt(integer), tt(local), tt(readonly) or tt(typeset) is matched when the
 | |
| line is parsed (N.B. not when it is executed).  In this case the arguments
 | |
| are parsed as assignments, except that the `tt(+=)' syntax and the
 | |
| tt(GLOB_ASSIGN) option are not supported, and scalar values after tt(=)
 | |
| are em(not) split further into words, even if expanded (regardless of the
 | |
| setting of the tt(KSH_TYPESET) option; this option is obsolete).
 | |
| 
 | |
| Examples of the differences between command and reserved word parsing:
 | |
| 
 | |
| example(# Reserved word parsing
 | |
| typeset svar=$(echo one word) avar=(several words))
 | |
| 
 | |
| The above creates a scalar parameter tt(svar) and an array
 | |
| parameter tt(avar) as if the assignments had been
 | |
| 
 | |
| example(svar="one word"
 | |
| avar=(several words))
 | |
| 
 | |
| On the other hand:
 | |
| 
 | |
| example(# Normal builtin interface
 | |
| builtin typeset svar=$(echo two words))
 | |
| 
 | |
| The tt(builtin) keyword causes the above to use the standard builtin
 | |
| interface to tt(typeset) in which argument parsing is performed in the same
 | |
| way as for other commands.  This example creates a scalar tt(svar)
 | |
| containing the value tt(two) and another scalar parameter tt(words) with
 | |
| no value.  An array value in this case would either cause an error or be
 | |
| treated as an obscure set of glob qualifiers.
 | |
| 
 | |
| Arbitrary arguments are allowed if they take the form of assignments
 | |
| after command line expansion; however, these only perform scalar
 | |
| assignment:
 | |
| 
 | |
| example(var='svar=val'
 | |
| typeset $var)
 | |
| 
 | |
| The above sets the scalar parameter tt(svar) to the value tt(val).
 | |
| Parentheses around the value within tt(var) would not cause array
 | |
| assignment as they will be treated as ordinary characters when tt($var)
 | |
| is substituted.  Any non-trivial expansion in the name part of the
 | |
| assignment causes the argument to be treated in this fashion:
 | |
| 
 | |
| example(typeset {var1,var2,var3}=name)
 | |
| 
 | |
| The above syntax is valid, and has the expected effect of setting the
 | |
| three parameters to the same value, but the command line is parsed as
 | |
| a set of three normal command line arguments to tt(typeset) after
 | |
| expansion.  Hence it is not possible to assign to multiple arrays by
 | |
| this means.
 | |
| 
 | |
| Note that each interface to any of the commands my be disabled
 | |
| separately.  For example, `tt(disable -r typeset)' disables the reserved
 | |
| word interface to tt(typeset), exposing the builtin interface, while
 | |
| `tt(disable typeset)' disables the builtin.  Note that disabling the
 | |
| reserved word interface for tt(typeset) may cause problems with the
 | |
| output of `tt(typeset -p)', which assumes the reserved word interface is
 | |
| available in order to restore array and associative array values.
 | |
| 
 | |
| Unlike parameter assignment statements, tt(typeset)'s exit status on an
 | |
| assignment that involves a command substitution does not reflect the exit
 | |
| status of the command substitution.  Therefore, to test for an error in
 | |
| a command substitution, separate the declaration of the parameter from its
 | |
| initialization:
 | |
| 
 | |
| example(# WRONG
 | |
| typeset var1=$(exit 1) || echo "Trouble with var1"
 | |
| 
 | |
| # RIGHT
 | |
| typeset var1 && var1=$(exit 1) || echo "Trouble with var1"
 | |
| )
 | |
| 
 | |
| To initialize a parameter var(param) to a command output and mark it readonly,
 | |
| use tt(typeset -r )var(param) or tt(readonly )var(param) after the parameter
 | |
| assignment statement.
 | |
| 
 | |
| If no attribute flags are given, and either no var(name) arguments are
 | |
| present or the flag tt(+m) is used, then each parameter name printed is
 | |
| preceded by a list of the attributes of that parameter (tt(array),
 | |
| tt(association), tt(exported), tt(float), tt(integer), tt(readonly),
 | |
| or tt(undefined) for autoloaded parameters not yet loaded).  If tt(+m) is
 | |
| used with attribute flags, and all those flags are introduced with
 | |
| tt(PLUS()), the matching parameter names are printed but their values
 | |
| are not.
 | |
| 
 | |
| The following control flags change the behavior of tt(typeset):
 | |
| 
 | |
| startitem()
 | |
| item(tt(PLUS()))(
 | |
| If `tt(PLUS())' appears by itself in a separate word as the last option,
 | |
| then the names of all parameters (functions with tt(-f)) are printed, but
 | |
| the values (function bodies) are not.  No var(name) arguments may appear,
 | |
| and it is an error for any other options to follow `tt(PLUS())'.  The
 | |
| effect of `tt(PLUS())' is as if all attribute flags which precede it were
 | |
| given with a `tt(PLUS())' prefix.  For example, `tt(typeset -U PLUS())' is
 | |
| equivalent to `tt(typeset +U)' and displays the names of all arrays having
 | |
| the uniqueness attribute, whereas `tt(typeset -f -U PLUS())' displays the
 | |
| names of all autoloadable functions.  If tt(PLUS()) is the only option,
 | |
| then type information (array, readonly, etc.) is also printed for each
 | |
| parameter, in the same manner as `tt(typeset +m "*")'.
 | |
| )
 | |
| item(tt(-g))(
 | |
| The tt(-g) (global) means that any resulting parameter will not be
 | |
| restricted to local scope.  Note that this does not necessarily mean that
 | |
| the parameter will be global, as the flag will apply to any existing
 | |
| parameter (even if unset) from an enclosing function.  This flag does not
 | |
| affect the parameter after creation, hence it has no effect when listing
 | |
| existing parameters, nor does the flag tt(+g) have any effect except in
 | |
| combination with tt(-m) (see below).
 | |
| )
 | |
| item(tt(-m))(
 | |
| If the tt(-m) flag is given the var(name) arguments are taken as patterns
 | |
| (use quoting to prevent these from being interpreted as file patterns).
 | |
| With no attribute flags, all parameters (or functions with the tt(-f)
 | |
| flag) with matching names are printed (the shell option tt(TYPESET_SILENT)
 | |
| is not used in this case).
 | |
| 
 | |
| If the tt(+g) flag is combined with tt(-m), a new local parameter is
 | |
| created for every matching parameter that is not already local.  Otherwise
 | |
| tt(-m) applies all other flags or assignments to the existing parameters.
 | |
| 
 | |
| Except when assignments are made with var(name)tt(=)var(value), using
 | |
| tt(+m) forces the matching parameters and their attributes to be printed,
 | |
| even inside a function.  Note that tt(-m) is ignored if no patterns are
 | |
| given, so `tt(typeset -m)' displays attributes but `tt(typeset -a +m)'
 | |
| does not.
 | |
| )
 | |
| item(tt(-p))(
 | |
| If the tt(-p) option is given, parameters and values are printed in the
 | |
| form of a typeset command with an assignment, regardless of other flags
 | |
| and options.  Note that the tt(-H) flag on parameters is respected; no
 | |
| value will be shown for these parameters.
 | |
| )
 | |
| item(tt(-T) [ var(scalar)[tt(=)var(value)] var(array)[tt(=LPAR())var(value) ...tt(RPAR())] [ var(sep) ] ])(
 | |
| This flag has a different meaning when used with tt(-f); see below.
 | |
| Otherwise the tt(-T) option requires zero, two, or three arguments to be
 | |
| present.  With no arguments, the list of parameters created in this
 | |
| fashion is shown.  With two or three arguments, the first two are the name
 | |
| of a scalar and of an array parameter (in that order) that will be tied
 | |
| together in the manner of tt($PATH) and tt($path).  The optional third
 | |
| argument is a single-character separator which will be used to join the
 | |
| elements of the array to form the scalar; if absent, a colon is used, as
 | |
| with tt($PATH).  Only the first character of the separator is significant;
 | |
| any remaining characters are ignored.  Multibyte characters are not
 | |
| yet supported.
 | |
| 
 | |
| Only one of the scalar and array parameters may be assigned an initial
 | |
| value (the restrictions on assignment forms described above also apply).
 | |
| 
 | |
| Both the scalar and the array may be manipulated as normal.  If one is
 | |
| unset, the other will automatically be unset too.  There is no way of
 | |
| untying the variables without unsetting them, nor of converting the type
 | |
| of one of them with another tt(typeset) command; tt(+T) does not work,
 | |
| assigning an array to var(scalar) is an error, and assigning a scalar to
 | |
| var(array) sets it to be a single-element array.
 | |
| 
 | |
| Note that both `tt(typeset -xT ...)'  and `tt(export -T ...)' work, but
 | |
| only the scalar will be marked for export.  Setting the value using the
 | |
| scalar version causes a split on all separators (which cannot be quoted).
 | |
| It is possible to apply tt(-T) to two previously tied variables but with a
 | |
| different separator character, in which case the variables remain joined
 | |
| as before but the separator is changed.
 | |
| )
 | |
| enditem()
 | |
| 
 | |
| Attribute flags that transform the final value (tt(-L), tt(-R), tt(-Z),
 | |
| tt(-l), tt(-u)) are only applied to the expanded value at the point
 | |
| of a parameter expansion expression using `tt($)'.  They are not applied
 | |
| when a parameter is retrieved internally by the shell for any purpose. 
 | |
| 
 | |
| The following attribute flags may be specified:
 | |
| 
 | |
| startitem()
 | |
| item(tt(-A))(
 | |
| The names refer to associative array parameters; see
 | |
| ifzman(`Array Parameters' in zmanref(zshparam))\
 | |
| ifnzman(noderef(Array Parameters))\
 | |
| .
 | |
| )
 | |
| item(tt(-L) [ var(n) ])(
 | |
| Left justify and remove leading blanks from the value when the parameter
 | |
| is expanded.
 | |
| If var(n) is nonzero, it defines the width of the field.
 | |
| If var(n) is zero, the width is determined by the width of the value of
 | |
| the first assignment.  In the case of numeric parameters, the length of the
 | |
| complete value assigned to the parameter is used to determine the width,
 | |
| not the value that would be output.
 | |
| 
 | |
| The width is the count of characters, which may be multibyte characters
 | |
| if the tt(MULTIBYTE) option is in effect.  Note that the screen
 | |
| width of the character is not taken into account; if this is required,
 | |
| use padding with parameter expansion flags
 | |
| tt(${+LPAR()ml)var(...)tt(RPAR())var(...)tt(}) as described in
 | |
| `Parameter Expansion Flags' in
 | |
| ifzman(zmanref(zshexpn))ifnzman(noderef(Parameter Expansion)).
 | |
| 
 | |
| When the parameter is expanded, it is filled on the right with
 | |
| blanks or truncated if necessary to fit the field.
 | |
| Note truncation can lead to unexpected results with numeric parameters.
 | |
| Leading zeros are removed if the tt(-Z) flag is also set.
 | |
| )
 | |
| item(tt(-R) [ var(n) ])(
 | |
| Similar to tt(-L), except that right justification is used;
 | |
| when the parameter is expanded, the field is left filled with
 | |
| blanks or truncated from the end.  May not be combined with the tt(-Z)
 | |
| flag.
 | |
| )
 | |
| item(tt(-U))(
 | |
| For arrays (but not for associative arrays), keep only the first
 | |
| occurrence of each duplicated value.  This may also be set for
 | |
| colon-separated special parameters like tt(PATH) or tt(FIGNORE), etc.
 | |
| Note the flag takes effect on assignment, and the type of the
 | |
| variable being assigned to is determinative; for variables with
 | |
| shared values it is therefore recommended to set the flag for
 | |
| all interfaces, e.g. `tt(typeset -U PATH path)'.
 | |
| 
 | |
| This flag has a different meaning when used with tt(-f); see below.
 | |
| )
 | |
| item(tt(-Z) [ var(n) ])(
 | |
| Specially handled if set along with the tt(-L) flag.
 | |
| Otherwise, similar to tt(-R), except that leading zeros are used for
 | |
| padding instead of blanks if the first non-blank character is a digit.
 | |
| Numeric parameters are specially handled: they are always eligible
 | |
| for padding with zeroes, and the zeroes are inserted at an appropriate
 | |
| place in the output.
 | |
| )
 | |
| item(tt(-a))(
 | |
| The names refer to array parameters.  An array parameter may be
 | |
| created this way, but it may be assigned to in the tt(typeset)
 | |
| statement only if the reserved word form of tt(typeset) is enabled
 | |
| (as it is by default).  When displaying, both normal and associative
 | |
| arrays are shown.
 | |
| )
 | |
| item(tt(-f))(
 | |
| The names refer to functions rather than parameters.  No assignments
 | |
| can be made, and the only other valid flags are tt(-t), tt(-T), tt(-k),
 | |
| tt(-u), tt(-U) and tt(-z).  The flag tt(-t) turns on execution tracing
 | |
| for this function; the flag tt(-T) does the same, but turns off tracing
 | |
| for any named (not anonymous) function called from the present one,
 | |
| unless that function also
 | |
| has the tt(-t) or tt(-T) flag.  The tt(-u) and tt(-U) flags cause the
 | |
| function to be marked for autoloading; tt(-U) also causes alias
 | |
| expansion to be suppressed when the function is loaded.  See the
 | |
| description of the `tt(autoload)' builtin for details.
 | |
| 
 | |
| Note that the builtin tt(functions) provides the same basic capabilities
 | |
| as tt(typeset -f) but gives access to a few extra options; tt(autoload)
 | |
| gives further additional options for the case tt(typeset -fu) and
 | |
| tt(typeset -fU).
 | |
| )
 | |
| item(tt(-h))(
 | |
| Hide: only useful for special parameters (those marked `<S>' in the table in
 | |
| ifzman(zmanref(zshparam))\
 | |
| ifnzman(noderef(Parameters Set By The Shell))\
 | |
| ), and for local parameters with the same name as a special parameter,
 | |
| though harmless for others.  A special parameter with this attribute will
 | |
| not retain its special effect when made local.  Thus after `tt(typeset -h
 | |
| PATH)', a function containing `tt(typeset PATH)' will create an ordinary
 | |
| local parameter without the usual behaviour of tt(PATH).  Alternatively,
 | |
| the local parameter may itself be given this attribute; hence inside a
 | |
| function `tt(typeset -h PATH)' creates an ordinary local parameter and the
 | |
| special tt(PATH) parameter is not altered in any way.  It is also possible
 | |
| to create a local parameter using `tt(typeset +h )var(special)', where the
 | |
| local copy of var(special) will retain its special properties regardless of
 | |
| having the tt(-h) attribute.  Global special parameters loaded from shell
 | |
| modules (currently those in tt(zsh/mapfile) and tt(zsh/parameter)) are
 | |
| automatically given the tt(-h) attribute to avoid name clashes.
 | |
| )
 | |
| item(tt(-H))(
 | |
| Hide value: specifies that tt(typeset) will not display the value of the
 | |
| parameter when listing parameters; the display for such parameters is
 | |
| always as if the `tt(PLUS())' flag had been given.  Use of the parameter is
 | |
| in other respects normal, and the option does not apply if the parameter is
 | |
| specified by name, or by pattern with the tt(-m) option.  This is on by
 | |
| default for the parameters in the tt(zsh/parameter) and tt(zsh/mapfile)
 | |
| modules.  Note, however, that unlike the tt(-h) flag this is also useful
 | |
| for non-special parameters.
 | |
| )
 | |
| item(tt(-i) [ var(n) ])(
 | |
| Use an internal integer representation.  If var(n) is nonzero it
 | |
| defines the output arithmetic base, otherwise it is determined by the
 | |
| first assignment.  Bases from 2 to 36 inclusive are allowed.
 | |
| )
 | |
| item(tt(-E) [ var(n) ])(
 | |
| Use an internal double-precision floating point representation.  On output
 | |
| the variable will be converted to scientific notation.  If var(n) is
 | |
| nonzero it defines the number of significant figures to display; the
 | |
| default is ten.
 | |
| )
 | |
| item(tt(-F) [ var(n) ])(
 | |
| Use an internal double-precision floating point representation.  On output
 | |
| the variable will be converted to fixed-point decimal notation.  If var(n)
 | |
| is nonzero it defines the number of digits to display after the decimal
 | |
| point; the default is ten.
 | |
| )
 | |
| item(tt(-l))(
 | |
| Convert the result to lower case whenever the parameter is expanded.
 | |
| The value is em(not) converted when assigned.
 | |
| )
 | |
| item(tt(-r))(
 | |
| The given var(name)s are marked readonly.  Note that if var(name) is a
 | |
| special parameter, the readonly attribute can be turned on, but cannot then
 | |
| be turned off.
 | |
| 
 | |
| If the tt(POSIX_BUILTINS) option is set, the readonly attribute is
 | |
| more restrictive: unset variables can be marked readonly and cannot then
 | |
| be set; furthermore, the readonly attribute cannot be removed from any
 | |
| variable.  Note that in zsh (unlike other shells) it is still possible
 | |
| to create a local variable of the same name as this is considered a
 | |
| different variable (though this variable, too, can be marked readonly).
 | |
| )
 | |
| item(tt(-t))(
 | |
| Tags the named parameters.  Tags have no special meaning to the shell.
 | |
| This flag has a different meaning when used with tt(-f); see above.
 | |
| )
 | |
| item(tt(-u))(
 | |
| Convert the result to upper case whenever the parameter is expanded.
 | |
| The value is em(not) converted when assigned.
 | |
| This flag has a different meaning when used with tt(-f); see above.
 | |
| )
 | |
| item(tt(-x))(
 | |
| Mark for automatic export to the environment of subsequently
 | |
| executed commands.  If the option tt(GLOBAL_EXPORT) is set, this implies
 | |
| the option tt(-g), unless tt(+g) is also explicitly given; in other words
 | |
| the parameter is not made local to the enclosing function.  This is for
 | |
| compatibility with previous versions of zsh.
 | |
| )
 | |
| enditem()
 | |
| )
 | |
| findex(ulimit)
 | |
| cindex(resource limits)
 | |
| cindex(limits, resource)
 | |
| item(tt(ulimit) [ tt(-HSa) ] [ { tt(-bcdfiklmnpqrsTtvwx) | tt(-N) var(resource) } [ var(limit) ] ... ])(
 | |
| Set or display resource limits of the shell and the processes started by
 | |
| the shell.  The value of var(limit) can be a number in the unit specified
 | |
| below or one of the values `tt(unlimited)', which removes the limit on the
 | |
| resource, or `tt(hard)', which uses the current value of the hard limit on
 | |
| the resource.
 | |
| 
 | |
| By default, only soft limits are manipulated. If the tt(-H) flag
 | |
| is given use hard limits instead of soft limits.  If the tt(-S) flag is given
 | |
| together with the tt(-H) flag set both hard and soft limits.
 | |
| 
 | |
| If no options are used, the file size limit (tt(-f)) is assumed.
 | |
| 
 | |
| If var(limit) is omitted the current value of the specified resources are
 | |
| printed.  When more than one resource value is printed, the limit name and
 | |
| unit is printed before each value.
 | |
| 
 | |
| When looping over multiple resources, the shell will abort immediately if
 | |
| it detects a badly formed argument.  However, if it fails to set a limit
 | |
| for some other reason it will continue trying to set the remaining limits.
 | |
| 
 | |
| Not all the following resources are supported on all systems.  Running
 | |
| tt(ulimit -a) will show which are supported.
 | |
| 
 | |
| startsitem()
 | |
| sitem(tt(-a))(Lists all of the current resource limits.)
 | |
| sitem(tt(-b))(Socket buffer size in bytes LPAR()N.B. not kilobytes+RPAR())
 | |
| sitem(tt(-c))(512-byte blocks on the size of core dumps.)
 | |
| sitem(tt(-d))(Kilobytes on the size of the data segment.)
 | |
| sitem(tt(-f))(512-byte blocks on the size of files written.)
 | |
| sitem(tt(-i))(The number of pending signals.)
 | |
| sitem(tt(-k))(The number of kqueues allocated.)
 | |
| sitem(tt(-l))(Kilobytes on the size of locked-in memory.)
 | |
| sitem(tt(-m))(Kilobytes on the size of physical memory.)
 | |
| sitem(tt(-n))(open file descriptors.)
 | |
| sitem(tt(-p))(The number of pseudo-terminals.)
 | |
| sitem(tt(-q))(Bytes in POSIX message queues.)
 | |
| sitem(tt(-r))(Maximum real time priority.  On some systems where this
 | |
| is not available, such as NetBSD, this has the same effect as tt(-T)
 | |
| for compatibility with tt(sh).)
 | |
| sitem(tt(-s))(Kilobytes on the size of the stack.)
 | |
| sitem(tt(-T))(The number of simultaneous threads available to the user.)
 | |
| sitem(tt(-t))(CPU seconds to be used.)
 | |
| sitem(tt(-u))(The number of processes available to the user.)
 | |
| sitem(tt(-v))(Kilobytes on the size of virtual memory.  On some systems this
 | |
| refers to the limit called `address space'.)
 | |
| sitem(tt(-w))(Kilobytes on the size of swapped out memory.)
 | |
| sitem(tt(-x))(The number of locks on files.)
 | |
| endsitem()
 | |
| 
 | |
| A resource may also be specified by integer in the form `tt(-N)
 | |
| var(resource)', where var(resource) corresponds to the integer defined for
 | |
| the resource by the operating system.  This may be used to set the limits
 | |
| for resources known to the shell which do not correspond to option letters.
 | |
| Such limits will be shown by number in the output of `tt(ulimit -a)'.
 | |
| 
 | |
| The number may alternatively be out of the range of limits compiled into
 | |
| the shell.  The shell will try to read or write the limit anyway, and
 | |
| will report an error if this fails.
 | |
| )
 | |
| findex(umask)
 | |
| cindex(umask)
 | |
| item(tt(umask) [ tt(-S) ] [ var(mask) ])(
 | |
| The umask is set to var(mask).  var(mask) can be either
 | |
| an octal number or a symbolic value as described in manref(chmod)(1).
 | |
| If var(mask) is omitted, the current value is printed.  The tt(-S)
 | |
| option causes the mask to be printed as a symbolic value.  Otherwise,
 | |
| the mask is printed as an octal number.  Note that in
 | |
| the symbolic form the permissions you specify are those which are to be
 | |
| allowed (not denied) to the users specified.
 | |
| )
 | |
| cindex(aliases, removing)
 | |
| item(tt(unalias) [ tt(-ams) ] var(name) ...)(
 | |
| Removes aliases.  This command works the same as tt(unhash -a), except that
 | |
| the tt(-a) option removes all regular or global aliases, or with tt(-s)
 | |
| all suffix aliases: in this case no var(name) arguments may appear.  The
 | |
| options tt(-m) (remove by pattern) and tt(-s) without tt(-a) (remove
 | |
| listed suffix aliases) behave as for tt(unhash -a).  Note that
 | |
| the meaning of tt(-a) is different between tt(unalias) and tt(unhash).
 | |
| )
 | |
| cindex(functions, removing)
 | |
| alias(unfunction)(unhash -f)
 | |
| findex(unhash)
 | |
| item(tt(unhash) [ tt(-adfms) ] var(name) ...)(
 | |
| Remove the element named var(name) from an internal hash table.  The
 | |
| default is remove elements from the command hash table.  The tt(-a)
 | |
| option causes tt(unhash) to remove regular or global aliases; note
 | |
| when removing a global aliases that the argument must be quoted to prevent
 | |
| it from being expanded before being passed to the command.
 | |
| The tt(-s) option causes tt(unhash) to remove suffix aliases.
 | |
| The tt(-f) option causes
 | |
| tt(unhash) to remove shell functions.  The tt(-d) options causes
 | |
| tt(unhash) to remove named directories.  If the tt(-m) flag is given
 | |
| the arguments are taken as patterns (should be quoted) and all elements
 | |
| of the corresponding hash table with matching names will be removed.
 | |
| )
 | |
| findex(unlimit)
 | |
| cindex(resource limits)
 | |
| cindex(limits, resource)
 | |
| item(tt(unlimit) [ tt(-hs) ] var(resource) ...)(
 | |
| The resource limit for each var(resource) is set to the hard limit.
 | |
| If the tt(-h) flag is given and the shell has appropriate privileges,
 | |
| the hard resource limit for each var(resource) is removed.
 | |
| The resources of the shell process are only changed if the tt(-s)
 | |
| flag is given.
 | |
| 
 | |
| The tt(unlimit) command is not made available by default when the
 | |
| shell starts in a mode emulating another shell.  It can be made available
 | |
| with the command `tt(zmodload -F zsh/rlimits b:unlimit)'.
 | |
| )
 | |
| findex(unset)
 | |
| cindex(parameters, unsetting)
 | |
| item(tt(unset) [ tt(-fmv) ] var(name) ...)(
 | |
| Each named parameter is unset.
 | |
| Local parameters remain local even if unset; they appear unset within scope,
 | |
| but the previous value will still reappear when the scope ends.
 | |
| 
 | |
| Individual elements of associative array parameters may be unset by using
 | |
| subscript syntax on var(name), which should be quoted (or the entire command
 | |
| prefixed with tt(noglob)) to protect the subscript from filename generation.
 | |
| 
 | |
| If the tt(-m) flag is specified the arguments are taken as patterns (should
 | |
| be quoted) and all parameters with matching names are unset.  Note that this
 | |
| cannot be used when unsetting associative array elements, as the subscript
 | |
| will be treated as part of the pattern.
 | |
| 
 | |
| The tt(-v) flag specifies that var(name) refers to parameters. This is the
 | |
| default behaviour.
 | |
| 
 | |
| tt(unset -f) is equivalent to tt(unfunction).
 | |
| )
 | |
| findex(unsetopt)
 | |
| cindex(options, unsetting)
 | |
| item(tt(unsetopt) [ {tt(PLUS())|tt(-)}var(options) | \
 | |
| {tt(PLUS())|tt(-)}tt(o) var(option_name) ] [ var(name) ... ])(
 | |
| Unset the options for the shell.  All options specified either
 | |
| with flags or by name are unset.  If no arguments are supplied,
 | |
| the names of all options currently unset are printed.
 | |
| If the tt(-m) flag is given the arguments are taken as patterns
 | |
| (which should be quoted to preserve them from being interpreted as glob
 | |
| patterns), and all options with names matching these patterns are unset.
 | |
| )
 | |
| zlecmd(vared)
 | |
| findex(wait)
 | |
| cindex(waiting for jobs)
 | |
| cindex(jobs, waiting for)
 | |
| item(tt(wait) [ var(job) ... ])(
 | |
| Wait for the specified jobs or processes.  If var(job) is not given
 | |
| then all currently active child processes are waited for.
 | |
| Each var(job) can be either a job specification or the process ID
 | |
| of a job in the job table.
 | |
| The exit status from this command is that of the job waited for.
 | |
| 
 | |
| It is possible to wait for recent processes (specified by process ID,
 | |
| not by job) that were running in the background even if the process has
 | |
| exited.  Typically the process ID will be recorded by capturing the
 | |
| value of the variable tt($!) immediately after the process has been
 | |
| started.  There is a limit on the number of process IDs remembered by
 | |
| the shell; this is given by the value of the system configuration
 | |
| parameter tt(CHILD_MAX).  When this limit is reached, older process IDs
 | |
| are discarded, least recently started processes first.
 | |
| 
 | |
| Note there is no protection against the process ID wrapping, i.e. if the
 | |
| wait is not executed soon enough there is a chance the process waited
 | |
| for is the wrong one.  A conflict implies both process IDs have been
 | |
| generated by the shell, as other processes are not recorded, and that
 | |
| the user is potentially interested in both, so this problem is intrinsic
 | |
| to process IDs.
 | |
| )
 | |
| findex(whence)
 | |
| item(tt(whence) [ tt(-vcwfpamsS) ] [ tt(-x) var(num) ] var(name) ...)(
 | |
| For each var(name), indicate how it would be interpreted if used as a
 | |
| command name.
 | |
| 
 | |
| tt(whence) is most useful when var(name) is only the last path component
 | |
| of a command, i.e. does not include a `tt(/)'; in particular, pattern
 | |
| matching only succeeds if just the non-directory component of the command is
 | |
| passed.
 | |
| 
 | |
| startitem()
 | |
| item(tt(-v))(
 | |
| Produce a more verbose report.
 | |
| )
 | |
| item(tt(-c))(
 | |
| Print the results in a bf(csh)-like format.
 | |
| This takes precedence over tt(-v).
 | |
| )
 | |
| item(tt(-w))(
 | |
| For each var(name), print `var(name)tt(:) var(word)' where var(word)
 | |
| is one of tt(alias), tt(builtin), tt(command), tt(function),
 | |
| tt(hashed), tt(reserved) or tt(none), according as var(name)
 | |
| corresponds to an alias, a built-in command, an external command, a
 | |
| shell function, a command defined with the tt(hash) builtin, a
 | |
| reserved word, or is not recognised.  This takes precedence over
 | |
| tt(-v) and tt(-c).
 | |
| )
 | |
| item(tt(-f))(
 | |
| Causes the contents of a shell function to be
 | |
| displayed, which would otherwise not happen unless the tt(-c)
 | |
| flag were used.
 | |
| )
 | |
| item(tt(-p))(
 | |
| Do a path search for var(name)
 | |
| even if it is an alias, reserved word, shell function or builtin.
 | |
| )
 | |
| item(tt(-a))(
 | |
| Do a search for all occurrences of var(name)
 | |
| throughout the command path.
 | |
| Normally only the first occurrence is printed.
 | |
| )
 | |
| item(tt(-m))(
 | |
| The arguments are taken as patterns (pattern characters should be
 | |
| quoted), and the information is displayed for each command matching one
 | |
| of these patterns.
 | |
| )
 | |
| item(tt(-s))(
 | |
| If a pathname contains symlinks, print the symlink-free pathname as well.
 | |
| )
 | |
| item(tt(-S))(
 | |
| As tt(-s), but if the pathname had to be resolved by following
 | |
| multiple symlinks, the intermediate steps are printed, too.  The
 | |
| symlink resolved at each step might be anywhere in the path.
 | |
| )
 | |
| item(tt(-x) var(num))(
 | |
| Expand tabs when outputting shell functions using the tt(-c) option.
 | |
| This has the same effect as the tt(-x) option to the tt(functions)
 | |
| builtin.
 | |
| )
 | |
| enditem()
 | |
| )
 | |
| findex(where)
 | |
| item(tt(where) [ tt(-wpmsS) ] [ tt(-x) var(num) ] var(name) ...)(
 | |
| Equivalent to tt(whence -ca).
 | |
| )
 | |
| findex(which)
 | |
| item(tt(which) [ tt(-wpamsS) ] [ tt(-x) var(num) ] var(name) ...)(
 | |
| Equivalent to tt(whence -c).
 | |
| )
 | |
| findex(zcompile)
 | |
| cindex(.zwc files, creation)
 | |
| cindex(compilation)
 | |
| xitem(tt(zcompile) [ tt(-U) ] [ tt(-z) | tt(-k) ] [ tt(-R) | tt(-M) ] var(file) [ var(name) ... ])
 | |
| xitem(tt(zcompile) tt(-ca) [ tt(-m) ] [ tt(-R) | tt(-M) ] var(file) [ var(name) ... ])
 | |
| item(tt(zcompile -t) var(file) [ var(name) ... ])(
 | |
| This builtin command can be used to compile functions or scripts,
 | |
| storing the compiled form in a file, and to examine files containing
 | |
| the compiled form.  This allows faster autoloading of functions and
 | |
| sourcing of scripts by avoiding parsing of the text when the files
 | |
| are read.
 | |
| 
 | |
| The first form (without the tt(-c), tt(-a) or tt(-t) options) creates a
 | |
| compiled file.  If only the var(file) argument is given, the
 | |
| output file has the name `var(file)tt(.zwc)' and will be placed in
 | |
| the same directory as the var(file).  The shell will load the compiled
 | |
| file instead of the normal function file when the function
 | |
| is autoloaded; see
 | |
| ifzman(\
 | |
| the section `Autoloading Functions' in zmanref(zshmisc)
 | |
| )\
 | |
| ifnzman(\
 | |
| noderef(Functions)
 | |
| )\
 | |
| for a description of how autoloaded functions are searched.  The
 | |
| extension tt(.zwc) stands for `zsh word code'.
 | |
| 
 | |
| vindex(fpath, with zcompile)
 | |
| If there is at least one var(name) argument, all the named files
 | |
| are compiled into the output var(file) given as the first argument.  If
 | |
| var(file) does not end in tt(.zwc), this extension is automatically
 | |
| appended.  Files containing multiple compiled functions are called `digest'
 | |
| files, and are intended to be used as elements of the tt(FPATH)/tt(fpath)
 | |
| special array.
 | |
| 
 | |
| The second form, with the tt(-c) or tt(-a) options, writes the compiled
 | |
| definitions for all the named functions into var(file).  For tt(-c), the
 | |
| names must be functions currently defined in the shell, not those marked
 | |
| for autoloading.  Undefined functions that are marked for autoloading
 | |
| may be written by using the tt(-a) option, in which case the tt(fpath)
 | |
| is searched and the contents of the definition files for those
 | |
| functions, if found, are compiled into var(file).  If both tt(-c) and
 | |
| tt(-a) are given, names of both defined functions and functions marked
 | |
| for autoloading may be given.  In either case, the functions in files
 | |
| written with the tt(-c) or tt(-a) option will be autoloaded as if the
 | |
| tt(KSH_AUTOLOAD) option were unset.
 | |
| 
 | |
| The reason for handling loaded and not-yet-loaded functions with
 | |
| different options is that some definition files for autoloading define
 | |
| multiple functions, including the function with the same name as the
 | |
| file, and, at the end, call that function.  In such cases the output of
 | |
| `tt(zcompile -c)' does not include the additional functions defined in
 | |
| the file, and any other initialization code in the file is lost.  Using
 | |
| `tt(zcompile -a)' captures all this extra information.
 | |
| 
 | |
| If the tt(-m) option is combined with tt(-c) or tt(-a),
 | |
| the var(name)s are used as patterns and all functions whose names
 | |
| match one of these patterns will be written. If no var(name) is given,
 | |
| the definitions of all functions currently defined or marked as
 | |
| autoloaded will be written.
 | |
| 
 | |
| Note the second form cannot be used for compiling functions that
 | |
| include redirections as part of the definition rather than within
 | |
| the body of the function; for example
 | |
| 
 | |
| example(fn1() { { ... } >~/logfile })
 | |
| 
 | |
| can be compiled but
 | |
| 
 | |
| example(fn1() { ... } >~/logfile)
 | |
| 
 | |
| cannot.  It is possible to use the first form of tt(zcompile) to compile
 | |
| autoloadable functions that include the full function definition instead
 | |
| of just the body of the function.
 | |
| 
 | |
| The third form, with the tt(-t) option, examines an existing
 | |
| compiled file.  Without further arguments, the names of the original
 | |
| files compiled into it are listed.  The first line of output shows
 | |
| the version of the shell which compiled the file and how the file
 | |
| will be used (i.e. by reading it directly or by mapping it into memory).
 | |
| With arguments, nothing is output and the return status is set to zero if
 | |
| definitions for em(all) var(name)s were found in the compiled
 | |
| file, and non-zero if the definition for at least one var(name) was not
 | |
| found.
 | |
| 
 | |
| Other options:
 | |
| 
 | |
| startitem()
 | |
| item(tt(-U))(
 | |
| Aliases are not expanded when compiling the var(name)d files.
 | |
| )
 | |
| item(tt(-R))(
 | |
| When the compiled file is read, its contents are copied into the
 | |
| shell's memory, rather than memory-mapped (see tt(-M)).  This
 | |
| happens automatically on systems that do not support memory mapping.
 | |
| 
 | |
| When compiling scripts instead of autoloadable functions, it is
 | |
| often desirable to use this option; otherwise the whole file, including the
 | |
| code to define functions which have already been defined, will
 | |
| remain mapped, consequently wasting memory.
 | |
| )
 | |
| item(tt(-M))(
 | |
| The compiled file is mapped into the shell's memory when read. This
 | |
| is done in such a way that multiple instances of the shell running
 | |
| on the same host will share this mapped file.  If neither tt(-R) nor
 | |
| tt(-M) is given, the tt(zcompile) builtin decides what to do based
 | |
| on the size of the compiled file.
 | |
| )
 | |
| xitem(tt(-k))
 | |
| item(tt(-z))(
 | |
| These options are used when the compiled file contains functions which
 | |
| are to be autoloaded. If tt(-z) is given, the
 | |
| function will be autoloaded as if the tt(KSH_AUTOLOAD) option is
 | |
| em(not) set, even if it is set at the time the compiled file is
 | |
| read, while if the tt(-k) is given, the function will be loaded as if
 | |
| tt(KSH_AUTOLOAD) em(is) set.  These options also take precedence over
 | |
| any tt(-k) or tt(-z) options specified to the tt(autoload) builtin. If
 | |
| neither of these options is given, the function will be loaded as
 | |
| determined by the setting of the tt(KSH_AUTOLOAD) option at the time
 | |
| the compiled file is read.
 | |
| ifzman( )
 | |
| These options may also appear as many times as necessary between the listed
 | |
| var(name)s to specify the loading style of all following functions, up to
 | |
| the next tt(-k) or tt(-z).
 | |
| )
 | |
| ifnzman(enditem()
 | |
| )
 | |
| The created file always contains two versions of the compiled
 | |
| format, one for big-endian machines and one for small-endian
 | |
| machines.  The upshot of this is that the compiled file is machine
 | |
| independent and if it is read or mapped, only one half of the file
 | |
| is actually used (and mapped).
 | |
| ifzman(enditem())
 | |
| )
 | |
| module(zformat)(zsh/zutil)
 | |
| module(zftp)(zsh/zftp)
 | |
| zlecmd(zle)
 | |
| findex(zmodload)
 | |
| cindex(modules, loading)
 | |
| cindex(loading modules)
 | |
| xitem(tt(zmodload) [ tt(-dL) ] [ tt(-s) ] [ ... ])
 | |
| xitem(tt(zmodload -F) [ tt(-alLme) tt(-P) var(param) ] var(module) [ [tt(PLUS()-)]var(feature) ... ])
 | |
| xitem(tt(zmodload -e) [ tt(-A) ] [ ... ])
 | |
| xitem(tt(zmodload) [ tt(-a) [ tt(-bcpf) [ tt(-I) ] ] ] [ tt(-iL) ] ...)
 | |
| xitem(tt(zmodload) tt(-u) [ tt(-abcdpf) [ tt(-I) ] ] [ tt(-iL) ] ...)
 | |
| xitem(tt(zmodload) tt(-A) [ tt(-L) ] [ var(modalias)[tt(=)var(module)] ... ])
 | |
| item(tt(zmodload) tt(-R) var(modalias) ... )(
 | |
| Performs operations relating to zsh's loadable modules.
 | |
| Loading of modules while the shell is running (`dynamical loading') is not
 | |
| available on all operating systems, or on all installations on a particular
 | |
| operating system, although the tt(zmodload) command itself is always
 | |
| available and can be used to manipulate modules built into versions of the
 | |
| shell executable without dynamical loading.
 | |
| 
 | |
| Without arguments the names of all currently loaded binary modules are
 | |
| printed.  The tt(-L) option causes this list to be in the form of a
 | |
| series of tt(zmodload) commands.  Forms with arguments are:
 | |
| 
 | |
| startitem()
 | |
| xitem(tt(zmodload) [ tt(-is) ] var(name) ... )
 | |
| item(tt(zmodload) tt(-u) [ tt(-i) ] var(name) ...)(
 | |
| In the simplest case, tt(zmodload) loads a binary module.  The module must
 | |
| be in a file with a name consisting of the specified var(name) followed by
 | |
| a standard suffix, usually `tt(.so)' (`tt(.sl)' on HPUX).
 | |
| If the module to be loaded is already loaded the duplicate module is
 | |
| ignored.  If tt(zmodload) detects an inconsistency, such as an
 | |
| invalid module name or circular dependency list, the current code block is 
 | |
| aborted.  If it is available, the module is loaded if necessary, while if it
 | |
| is not available, non-zero status is silently returned.  The option
 | |
| tt(-i) is accepted for compatibility but has no effect.
 | |
| 
 | |
| The var(name)d module is searched for in the same way a command is, using
 | |
| tt($module_path) instead of tt($path).  However, the path search is
 | |
| performed even when the module name contains a `tt(/)', which it usually does.
 | |
| There is no way to prevent the path search.
 | |
| 
 | |
| If the module supports features (see below), tt(zmodload) tries to
 | |
| enable all features when loading a module.  If the module was successfully
 | |
| loaded but not all features could be enabled, tt(zmodload) returns status 2.
 | |
| 
 | |
| If the option tt(-s) is given, no error is printed if the module was not
 | |
| available (though other errors indicating a problem with the module are
 | |
| printed).  The return status indicates if the module was loaded.  This
 | |
| is appropriate if the caller considers the module optional.
 | |
| 
 | |
| With tt(-u), tt(zmodload) unloads modules.  The same var(name)
 | |
| must be given that was given when the module was loaded, but it is not
 | |
| necessary for the module to exist in the file system.
 | |
| The tt(-i) option suppresses the error if the module is already
 | |
| unloaded (or was never loaded).
 | |
| 
 | |
| Each module has a boot and a cleanup function.  The module
 | |
| will not be loaded if its boot function fails.  Similarly a module
 | |
| can only be unloaded if its cleanup function runs successfully.
 | |
| )
 | |
| item(tt(zmodload -F) [ tt(-almLe) tt(-P) var(param) ] var(module) [ [tt(PLUS()-)]var(feature) ... ])(
 | |
| tt(zmodload -F) allows more selective control over the features provided
 | |
| by modules.  With no options apart from tt(-F), the module named
 | |
| var(module) is loaded, if it was not already loaded, and the list of
 | |
| var(feature)s is set to the required state.  If no 
 | |
| var(feature)s are specified, the module is loaded, if it was not already
 | |
| loaded, but the state of features is unchanged.  Each feature
 | |
| may be preceded by a tt(PLUS()) to turn the feature on, or tt(-) to turn it
 | |
| off; the tt(PLUS()) is assumed if neither character is present.
 | |
| Any feature not explicitly mentioned is left in its current state;
 | |
| if the module was not previously loaded this means any such features will
 | |
| remain disabled.  The return status is zero if all features were
 | |
| set, 1 if the module failed to load, and 2 if some features could
 | |
| not be set (for example, a parameter couldn't be added because there
 | |
| was a different parameter of the same name) but the module was loaded.
 | |
| 
 | |
| The standard features are builtins, conditions, parameters and math
 | |
| functions; these are indicated by the prefix `tt(b:)', `tt(c:)'
 | |
| (`tt(C:)' for an infix condition), `tt(p:)' and `tt(f:)', respectively,
 | |
| followed by the name that the corresponding feature would have in the
 | |
| shell.  For example, `tt(b:strftime)' indicates a builtin named
 | |
| tt(strftime) and tt(p:EPOCHSECONDS) indicates a parameter named
 | |
| tt(EPOCHSECONDS).  The module may provide other (`abstract') features of
 | |
| its own as indicated by its documentation; these have no prefix.
 | |
| 
 | |
| With tt(-l) or tt(-L), features provided by the module are listed.  With
 | |
| tt(-l) alone, a list of features together with their states is shown, one
 | |
| feature per line.  With tt(-L) alone, a tt(zmodload -F) command that would
 | |
| cause enabled features of the module to be turned on is shown.  With
 | |
| tt(-lL), a tt(zmodload -F) command that would cause all the features to be
 | |
| set to their current state is shown.  If one of these combinations is given
 | |
| with the option tt(-P) var(param) then the parameter var(param) is set to an
 | |
| array of features, either features together with their state or (if
 | |
| tt(-L) alone is given) enabled features.
 | |
| 
 | |
| With the option tt(-L) the module name may be omitted; then a list
 | |
| of all enabled features for all modules providing features is printed
 | |
| in the form of tt(zmodload -F) commands.  If tt(-l) is also given,
 | |
| the state of both enabled and disabled features is output in that form.
 | |
| 
 | |
| A set of features may be provided together with tt(-l) or tt(-L) and a
 | |
| module name; in that case only the state of those features is
 | |
| considered.  Each feature may be preceded by tt(PLUS()) or tt(-) but the
 | |
| character has no effect.  If no set of features is provided, all
 | |
| features are considered.
 | |
| 
 | |
| With tt(-e), the command first tests that the module is loaded;
 | |
| if it is not, status 1 is returned.  If the module is loaded,
 | |
| the list of features given as an argument is examined.  Any feature
 | |
| given with no prefix is simply tested to see if the module provides it;
 | |
| any feature given with a prefix tt(PLUS()) or tt(-) is tested to
 | |
| see if is provided and in the given state.  If the tests on all features
 | |
| in the list succeed, status 0 is returned, else status 1.
 | |
| 
 | |
| With tt(-m), each entry in the given list of features is taken
 | |
| as a pattern to be matched against the list of features provided
 | |
| by the module.  An initial tt(PLUS()) or tt(-) must be given explicitly.
 | |
| This may not be combined with the tt(-a) option as autoloads must
 | |
| be specified explicitly.
 | |
| 
 | |
| With tt(-a), the given list of features is marked for autoload from
 | |
| the specified module, which may not yet be loaded.  An optional tt(PLUS())
 | |
| may appear before the feature name.  If the feature is prefixed with
 | |
| tt(-), any existing autoload is removed.  The options tt(-l) and tt(-L)
 | |
| may be used to list autoloads.  Autoloading is specific to individual
 | |
| features; when the module is loaded only the requested feature is
 | |
| enabled.  Autoload requests are preserved if the module is
 | |
| subsequently unloaded until an explicit `tt(zmodload -Fa) var(module)
 | |
| tt(-)var(feature)' is issued.  It is not an error to request an autoload
 | |
| for a feature of a module that is already loaded.
 | |
| 
 | |
| When the module is loaded each autoload is checked against the features
 | |
| actually provided by the module; if the feature is not provided the
 | |
| autoload request is deleted.  A warning message is output; if the
 | |
| module is being loaded to provide a different feature, and that autoload
 | |
| is successful, there is no effect on the status of the current command.
 | |
| If the module is already loaded at the time when tt(zmodload -Fa) is
 | |
| run, an error message is printed and status 1 returned.
 | |
| 
 | |
| tt(zmodload -Fa) can be used with the tt(-l), tt(-L), tt(-e) and
 | |
| tt(-P) options for listing and testing the existence of autoloadable
 | |
| features.  In this case tt(-l) is ignored if tt(-L) is specified.
 | |
| tt(zmodload -FaL) with no module name lists autoloads for all modules.
 | |
| 
 | |
| Note that only standard features as described above can be autoloaded;
 | |
| other features require the module to be loaded before enabling.
 | |
| )
 | |
| xitem(tt(zmodload) tt(-d) [ tt(-L) ] [ var(name) ])
 | |
| xitem(tt(zmodload) tt(-d) var(name) var(dep) ...)
 | |
| item(tt(zmodload) tt(-ud) var(name) [ var(dep) ... ])(
 | |
| The tt(-d) option can be used to specify module dependencies.  The modules
 | |
| named in the second and subsequent arguments will be loaded before the
 | |
| module named in the first argument.
 | |
| 
 | |
| With tt(-d) and one argument, all dependencies for that module are listed.
 | |
| With tt(-d) and no arguments, all module dependencies are listed.  This
 | |
| listing is by default in a Makefile-like format.  The tt(-L) option
 | |
| changes this format to a list of tt(zmodload -d) commands.
 | |
| 
 | |
| If tt(-d) and tt(-u) are both used, dependencies are removed.  If only one
 | |
| argument is given, all dependencies for that module are removed.
 | |
| )
 | |
| xitem(tt(zmodload) tt(-ab) [ tt(-L) ])
 | |
| xitem(tt(zmodload) tt(-ab) [ tt(-i) ] var(name) [ var(builtin) ... ])
 | |
| item(tt(zmodload) tt(-ub) [ tt(-i) ] var(builtin) ...)(
 | |
| The tt(-ab) option defines autoloaded builtins.  It defines the specified
 | |
| var(builtin)s.  When any of those builtins is called, the module specified
 | |
| in the first argument is loaded and all its features are enabled (for
 | |
| selective control of features use `tt(zmodload -F -a)' as described
 | |
| above).  If only the var(name) is given, one builtin is defined, with
 | |
| the same name as the module.  tt(-i) suppresses the error if the builtin
 | |
| is already defined or autoloaded, but not if another builtin of the
 | |
| same name is already defined.
 | |
| 
 | |
| With tt(-ab) and no arguments, all autoloaded builtins are listed, with the
 | |
| module name (if different) shown in parentheses after the builtin name.
 | |
| The tt(-L) option changes this format to a list of tt(zmodload -a)
 | |
| commands.
 | |
| 
 | |
| If tt(-b) is used together with the tt(-u) option, it removes builtins
 | |
| previously defined with tt(-ab).  This is only possible if the builtin is
 | |
| not yet loaded.  tt(-i) suppresses the error if the builtin is already
 | |
| removed (or never existed).
 | |
| 
 | |
| Autoload requests are retained if the module is subsequently unloaded
 | |
| until an explicit `tt(zmodload -ub) var(builtin)' is issued.
 | |
| )
 | |
| xitem(tt(zmodload) tt(-ac) [ tt(-IL) ])
 | |
| xitem(tt(zmodload) tt(-ac) [ tt(-iI) ] var(name) [ var(cond) ... ])
 | |
| item(tt(zmodload) tt(-uc) [ tt(-iI) ] var(cond) ...)(
 | |
| The tt(-ac) option is used to define autoloaded condition codes. The
 | |
| var(cond) strings give the names of the conditions defined by the
 | |
| module. The optional tt(-I) option is used to define infix condition
 | |
| names. Without this option prefix condition names are defined.
 | |
| 
 | |
| If given no condition names, all defined names are listed (as a series of
 | |
| tt(zmodload) commands if the tt(-L) option is given).
 | |
| 
 | |
| The tt(-uc) option removes definitions for autoloaded conditions.
 | |
| )
 | |
| xitem(tt(zmodload) tt(-ap) [ tt(-L) ])
 | |
| xitem(tt(zmodload) tt(-ap) [ tt(-i) ] var(name) [ var(parameter) ... ])
 | |
| item(tt(zmodload) tt(-up) [ tt(-i) ] var(parameter) ...)(
 | |
| The tt(-p) option is like the tt(-b) and tt(-c) options, but makes
 | |
| tt(zmodload) work on autoloaded parameters instead.
 | |
| )
 | |
| xitem(tt(zmodload) tt(-af) [ tt(-L) ])
 | |
| xitem(tt(zmodload) tt(-af) [ tt(-i) ] var(name) [ var(function) ... ])
 | |
| item(tt(zmodload) tt(-uf) [ tt(-i) ] var(function) ...)(
 | |
| The tt(-f) option is like the tt(-b), tt(-p), and tt(-c) options, but
 | |
| makes tt(zmodload) work on autoloaded math functions instead. 
 | |
| )
 | |
| xitem(tt(zmodload) tt(-a) [ tt(-L) ])
 | |
| xitem(tt(zmodload) tt(-a) [ tt(-i) ] var(name) [ var(builtin) ... ])
 | |
| item(tt(zmodload) tt(-ua) [ tt(-i) ] var(builtin) ...)(
 | |
| Equivalent to tt(-ab) and tt(-ub).
 | |
| )
 | |
| item(tt(zmodload -e) [ tt(-A) ] [ var(string) ... ])(
 | |
| The tt(-e) option without arguments lists all loaded modules; if the tt(-A)
 | |
| option is also given, module aliases corresponding to loaded modules are
 | |
| also shown.  If arguments are provided, nothing is printed;
 | |
| the return status is set to zero if all var(string)s given as arguments
 | |
| are names of loaded modules and to one if at least on var(string) is not
 | |
| the name of a loaded module.  This can be used to test for the
 | |
| availability of things implemented by modules.  In this case, any
 | |
| aliases are automatically resolved and the tt(-A) flag is not used.
 | |
| )
 | |
| item(tt(zmodload) tt(-A) [ tt(-L) ] [ var(modalias)[tt(=)var(module)] ... ])(
 | |
| For each argument, if both var(modalias) and var(module) are given,
 | |
| define var(modalias) to be an alias for the module var(module).
 | |
| If the module var(modalias) is ever subsequently requested, either via a
 | |
| call to tt(zmodload) or implicitly, the shell will attempt to load
 | |
| var(module) instead.  If var(module) is not given, show the definition of
 | |
| var(modalias).  If no arguments are given, list all defined module aliases.
 | |
| When listing, if the tt(-L) flag was also given, list the definition as a
 | |
| tt(zmodload) command to recreate the alias.
 | |
| 
 | |
| The existence of aliases for modules is completely independent of whether
 | |
| the name resolved is actually loaded as a module: while the alias exists,
 | |
| loading and unloading the module under any alias has exactly the same
 | |
| effect as using the resolved name, and does not affect the connection
 | |
| between the alias and the resolved name which can be removed either by
 | |
| tt(zmodload -R) or by redefining the alias.  Chains of aliases (i.e. where
 | |
| the first resolved name is itself an alias) are valid so long as these are
 | |
| not circular.  As the aliases take the same format as module names, they
 | |
| may include path separators:  in this case, there is no requirement for any
 | |
| part of the path named to exist as the alias will be resolved first.  For
 | |
| example, `tt(any/old/alias)' is always a valid alias.
 | |
| 
 | |
| Dependencies added to aliased modules are actually added to the resolved
 | |
| module; these remain if the alias is removed.  It is valid to create an
 | |
| alias whose name is one of the standard shell modules and which resolves to
 | |
| a different module.  However, if a module has dependencies, it
 | |
| will not be possible to use the module name as an alias as the module will
 | |
| already be marked as a loadable module in its own right.
 | |
| 
 | |
| Apart from the above, aliases can be used in the tt(zmodload) command
 | |
| anywhere module names are required.  However, aliases will not be
 | |
| shown in lists of loaded modules with a bare `tt(zmodload)'.
 | |
| )
 | |
| item(tt(zmodload) tt(-R) var(modalias) ... )(
 | |
| For each var(modalias) argument that was previously defined as a module
 | |
| alias via tt(zmodload -A), delete the alias.  If any was not defined, an
 | |
| error is caused and the remainder of the line is ignored.
 | |
| )
 | |
| enditem()
 | |
| 
 | |
| Note that tt(zsh) makes no distinction between modules that were linked 
 | |
| into the shell and modules that are loaded dynamically. In both cases
 | |
| this builtin command has to be used to make available the builtins and
 | |
| other things defined by modules (unless the module is autoloaded on
 | |
| these definitions). This is true even for systems that don't support
 | |
| dynamic loading of modules.
 | |
| )
 | |
| module(zparseopts)(zsh/zutil)
 | |
| module(zprof)(zsh/zprof)
 | |
| module(zpty)(zsh/zpty)
 | |
| module(zregexparse)(zsh/zutil)
 | |
| module(zsocket)(zsh/net/socket)
 | |
| module(zstyle)(zsh/zutil)
 | |
| module(ztcp)(zsh/net/tcp)
 | |
| enditem()
 |