mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 06:00:54 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			1172 lines
		
	
	
	
		
			44 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			1172 lines
		
	
	
	
		
			44 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| texinode(Parameters)(Options)(Expansion)(Top)
 | |
| chapter(Parameters)
 | |
| cindex(parameters)
 | |
| sect(Description)
 | |
| A parameter has a name, a value, and a number of attributes.
 | |
| A name may be any sequence of alphanumeric
 | |
| characters and underscores, or the single characters
 | |
| `tt(*)', `tt(@)', `tt(#)', `tt(?)', `tt(-)', `tt($)', or `tt(!)'.
 | |
| The value may be a em(scalar) (a string),
 | |
| an integer, an array (indexed numerically), or an em(associative)
 | |
| array (an unordered set of name-value pairs, indexed by name).  To declare
 | |
| the type of a parameter, or to assign a scalar or integer value to a
 | |
| parameter, use the tt(typeset) builtin.
 | |
| findex(typeset, use of)
 | |
| 
 | |
| The value of a scalar or integer parameter may also be assigned by
 | |
| writing:
 | |
| cindex(assignment)
 | |
| 
 | |
| indent(var(name)tt(=)var(value))
 | |
| 
 | |
| If the integer attribute, tt(-i), is set for var(name), the var(value)
 | |
| is subject to arithmetic evaluation.  Furthermore, by replacing `tt(=)'
 | |
| with `tt(+=)', a parameter can be added or appended to.  See
 | |
| noderef(Array Parameters) for additional forms of assignment.
 | |
| 
 | |
| To refer to the value of a parameter, write `tt($)var(name)' or
 | |
| `tt(${)var(name)tt(})'.  See
 | |
| ifzman(em(Parameter Expansion) in zmanref(zshexpn))\
 | |
| ifnzman(noderef(Parameter Expansion))
 | |
| for complete details.
 | |
| 
 | |
| In the parameter lists that follow, the mark `<S>' indicates that the
 | |
| parameter is special.
 | |
| Special parameters cannot have their type changed or their
 | |
| readonly attribute turned off, and if a special parameter is unset, then
 | |
| later recreated, the special properties will be retained.  `<Z>' indicates
 | |
| that the parameter does not exist when the shell initializes in tt(sh) or
 | |
| tt(ksh) emulation mode.
 | |
| startmenu()
 | |
| menu(Array Parameters)
 | |
| menu(Positional Parameters)
 | |
| menu(Local Parameters)
 | |
| menu(Parameters Set By The Shell)
 | |
| menu(Parameters Used By The Shell)
 | |
| endmenu()
 | |
| texinode(Array Parameters)(Positional Parameters)()(Parameters)
 | |
| sect(Array Parameters)
 | |
| To assign an array value, write one of:
 | |
| findex(set, use of)
 | |
| cindex(array assignment)
 | |
| 
 | |
| indent(tt(set -A) var(name) var(value) ...)
 | |
| indent(var(name)tt(=LPAR())var(value) ...tt(RPAR()))
 | |
| 
 | |
| If no parameter var(name) exists, an ordinary array parameter is created.
 | |
| If the parameter var(name) exists and is a scalar, it is replaced by a new
 | |
| array.  Ordinary array parameters may also be explicitly declared with:
 | |
| findex(typeset, use of)
 | |
| 
 | |
| indent(tt(typeset -a) var(name))
 | |
| 
 | |
| Associative arrays em(must) be declared before assignment, by using:
 | |
| 
 | |
| indent(tt(typeset -A) var(name))
 | |
| 
 | |
| When var(name) refers to an associative array, the list in an assignment
 | |
| is interpreted as alternating keys and values:
 | |
| 
 | |
| indent(set -A var(name) var(key) var(value) ...)
 | |
| indent(var(name)tt(=LPAR())var(key) var(value) ...tt(RPAR()))
 | |
| 
 | |
| Every var(key) must have a var(value) in this case.  Note that this
 | |
| assigns to the entire array, deleting any elements that do not appear
 | |
| in the list.
 | |
| 
 | |
| To create an empty array (including associative arrays), use one of:
 | |
| 
 | |
| indent(tt(set -A) var(name))
 | |
| indent(var(name)tt(=LPAR()RPAR()))
 | |
| 
 | |
| subsect(Array Subscripts)
 | |
| cindex(subscripts)
 | |
| 
 | |
| Individual elements of an array may be selected using a subscript.  A
 | |
| subscript of the form `tt([)var(exp)tt(])' selects the single element
 | |
| var(exp), where var(exp) is an arithmetic expression which will be subject
 | |
| to arithmetic expansion as if it were surrounded by
 | |
| `tt($LPAR()LPAR())...tt(RPAR()RPAR())'.  The elements are numbered
 | |
| beginning with 1, unless the tt(KSH_ARRAYS) option is set in which case
 | |
| they are numbered from zero.
 | |
| pindex(KSH_ARRAYS, use of)
 | |
| 
 | |
| Subscripts may be used inside braces used to delimit a parameter name, thus
 | |
| `tt(${foo[2]})' is equivalent to `tt($foo[2])'.  If the tt(KSH_ARRAYS)
 | |
| option is set, the braced form is the only one that works, as bracketed
 | |
| expressions otherwise are not treated as subscripts.
 | |
| 
 | |
| The same subscripting syntax is used for associative arrays, except that
 | |
| no arithmetic expansion is applied to var(exp).  However, the parsing
 | |
| rules for arithmetic expressions still apply, which affects the way that
 | |
| certain special characters must be protected from interpretation.  See
 | |
| em(Subscript Parsing) below for details.
 | |
| 
 | |
| A subscript of the form `tt([*])' or `tt([@])' evaluates to all elements
 | |
| of an array; there is no difference between the two except when they
 | |
| appear within double quotes.
 | |
| `tt("$foo[*]")' evaluates to `tt("$foo[1] $foo[2] )...tt(")', whereas
 | |
| `tt("$foo[@]")' evaluates to `tt("$foo[1]" "$foo[2]" )...'.  For
 | |
| associative arrays, `tt([*])' or `tt([@])' evaluate to all the values (not
 | |
| the keys, but see em(Subscript Flags) below), in no particular order.
 | |
| When an array parameter is referenced as `tt($)var(name)' (with no
 | |
| subscript) it evaluates to `tt($)var(name)tt([*])', unless the tt(KSH_ARRAYS)
 | |
| option is set in which case it evaluates to `tt(${)var(name)tt([0]})' (for
 | |
| an associative array, this means the value of the key `tt(0)', which may
 | |
| not exist even if there are values for other keys).
 | |
| 
 | |
| A subscript of the form `tt([)var(exp1)tt(,)var(exp2)tt(])'
 | |
| selects all elements in the range var(exp1) to var(exp2),
 | |
| inclusive. (Associative arrays are unordered, and so do not support
 | |
| ranges.) If one of the subscripts evaluates to a negative number,
 | |
| say tt(-)var(n), then the var(n)th element from the end
 | |
| of the array is used.  Thus `tt($foo[-3])' is the third element
 | |
| from the end of the array tt(foo), and
 | |
| `tt($foo[1,-1])' is the same as `tt($foo[*])'.
 | |
| 
 | |
| Subscripting may also be performed on non-array values, in which
 | |
| case the subscripts specify a substring to be extracted.
 | |
| For example, if tt(FOO) is set to `tt(foobar)', then
 | |
| `tt(echo $FOO[2,5])' prints `tt(ooba)'.
 | |
| 
 | |
| subsect(Array Element Assignment)
 | |
| 
 | |
| A subscript may be used on the left side of an assignment like so:
 | |
| 
 | |
| indent(var(name)tt([)var(exp)tt(]=)var(value))
 | |
| 
 | |
| In this form of assignment the element or range specified by var(exp)
 | |
| is replaced by the expression on the right side.  An array (but not an
 | |
| associative array) may be created by assignment to a range or element.
 | |
| Arrays do not nest, so assigning a parenthesized list of values to an
 | |
| element or range changes the number of elements in the array, shifting the
 | |
| other elements to accommodate the new values.  (This is not supported for
 | |
| associative arrays.)
 | |
| 
 | |
| This syntax also works as an argument to the tt(typeset) command:
 | |
| 
 | |
| indent(tt(typeset) tt(")var(name)tt([)var(exp)tt(]"=)var(value))
 | |
| 
 | |
| The var(value) may em(not) be a parenthesized list in this case; only
 | |
| single-element assignments may be made with tt(typeset).  Note that quotes
 | |
| are necessary in this case to prevent the brackets from being interpreted
 | |
| as filename generation operators.  The tt(noglob) precommand modifier
 | |
| could be used instead.
 | |
| 
 | |
| To delete an element of an ordinary array, assign `tt(LPAR()RPAR())' to
 | |
| that element.  To delete an element of an associative array, use the
 | |
| tt(unset) command:
 | |
| 
 | |
| indent(tt(unset) tt(")var(name)tt([)var(exp)tt(]"))
 | |
| 
 | |
| subsect(Subscript Flags)
 | |
| cindex(subscript flags)
 | |
| 
 | |
| If the opening bracket, or the comma in a range, in any subscript
 | |
| expression is directly followed by an opening parenthesis, the string up
 | |
| to the matching closing one is considered to be a list of flags, as in
 | |
| `var(name)tt([LPAR())var(flags)tt(RPAR())var(exp)tt(])'.  The flags
 | |
| currently understood are:
 | |
| 
 | |
| startitem()
 | |
| item(tt(w))(
 | |
| If the parameter subscripted is a scalar than this flag makes
 | |
| subscripting work on words instead of characters.  The default word
 | |
| separator is whitespace.
 | |
| )
 | |
| item(tt(s:)var(string)tt(:))(
 | |
| This gives the var(string) that separates words (for use with the
 | |
| tt(w) flag).
 | |
| )
 | |
| item(tt(p))(
 | |
| Recognize the same escape sequences as the tt(print) builtin in
 | |
| the string argument of a subsequent `tt(s)' flag.
 | |
| )
 | |
| item(tt(f))(
 | |
| If the parameter subscripted is a scalar than this flag makes
 | |
| subscripting work on lines instead of characters, i.e. with elements
 | |
| separated by newlines.  This is a shorthand for `tt(pws:\n:)'.
 | |
| )
 | |
| item(tt(r))(
 | |
| Reverse subscripting: if this flag is given, the var(exp) is taken as a
 | |
| pattern and the result is the first matching array element, substring or
 | |
| word (if the parameter is an array, if it is a scalar, or if it is a
 | |
| scalar and the `tt(w)' flag is given, respectively).  The subscript used
 | |
| is the number of the matching element, so that pairs of subscripts such as
 | |
| `tt($foo[(r))var(??)tt(,3])' and `tt($foo[(r))var(??)tt(,(r)f*])' are
 | |
| possible.  If the parameter is an associative array, only the value part
 | |
| of each pair is compared to the pattern, and the result is that value.
 | |
| Reverse subscripts may be used for assigning to ordinary array elements,
 | |
| but not for assigning to associative arrays.
 | |
| )
 | |
| item(tt(R))(
 | |
| Like `tt(r)', but gives the last match.  For associative arrays, gives
 | |
| all possible matches.
 | |
| )
 | |
| item(tt(i))(
 | |
| Like `tt(r)', but gives the index of the match instead; this may not be
 | |
| combined with a second argument.  On the left side of an assignment,
 | |
| behaves like `tt(r)'.  For associative arrays, the key part of each pair
 | |
| is compared to the pattern, and the first matching key found is the
 | |
| result.
 | |
| )
 | |
| item(tt(I))(
 | |
| Like `tt(i)', but gives the index of the last match, or all possible
 | |
| matching keys in an associative array.
 | |
| )
 | |
| item(tt(k))(
 | |
| If used in a subscript on an associative array, this flag causes the keys
 | |
| to be interpreted as patterns, and returns the value for the first key
 | |
| found where var(exp) is matched by the key.  This flag does not work on
 | |
| the left side of an assignment to an associative array element.  If used
 | |
| on another type of parameter, this behaves like `tt(r)'.
 | |
| )
 | |
| item(tt(K))(
 | |
| On an associative array this is like `tt(k)' but returns all values where
 | |
| var(exp) is matched by the keys.  On other types of parameters this has
 | |
| the same effect as `tt(R)'.
 | |
| )
 | |
| item(tt(n:)var(expr)tt(:))(
 | |
| If combined with `tt(r)', `tt(R)', `tt(i)' or `tt(I)', makes them give
 | |
| the var(n)th or var(n)th last match (if var(expr) evaluates to
 | |
| var(n)).  This flag is ignored when the array is associative.
 | |
| )
 | |
| item(tt(b:)var(expr)tt(:))(
 | |
| If combined with `tt(r)', `tt(R)', `tt(i)' or `tt(I)', makes them begin
 | |
| at the var(n)th or var(n)th last element, word, or character (if var(expr)
 | |
| evaluates to var(n)).  This flag is ignored when the array is associative.
 | |
| )
 | |
| item(tt(e))(
 | |
| This flag has no effect and for ordinary arrays is retained for backward
 | |
| compatibility only.  For associative arrays, this flag can be used to
 | |
| force tt(*) or tt(@) to be interpreted as a single key rather than as a
 | |
| reference to all values.  This flag may be used on the left side of an
 | |
| assignment.
 | |
| )
 | |
| enditem()
 | |
| 
 | |
| See em(Parameter Expansion Flags) (\
 | |
| ifzman(zmanref(zshexpn))\
 | |
| ifnzman(noderef(Parameter Expansion))\
 | |
| ) for additional ways to manipulate the results of array subscripting.
 | |
| 
 | |
| subsect(Subscript Parsing)
 | |
| 
 | |
| This discussion applies mainly to associative array key strings and to
 | |
| patterns used for reverse subscripting (the `tt(r)', `tt(R)', `tt(i)',
 | |
| etc. flags), but it may also affect parameter substitutions that appear
 | |
| as part of an arithmetic expression in an ordinary subscript.
 | |
| 
 | |
| The basic rule to remember when writing a subscript expression is that all
 | |
| text between the opening `tt([)' and the closing `tt(])' is interpreted
 | |
| em(as if) it were in double quotes (\
 | |
| ifzman(see zmanref(zshmisc))\
 | |
| ifnzman(noderef(Quoting))\
 | |
| ).  However, unlike double quotes which normally cannot nest, subscript
 | |
| expressions may appear inside double-quoted strings or inside other
 | |
| subscript expressions (or both!), so the rules have two important
 | |
| differences.
 | |
| 
 | |
| The first difference is that brackets (`tt([)' and `tt(])') must appear as
 | |
| balanced pairs in a subscript expression unless they are preceded by a
 | |
| backslash (`tt(\)').  Therefore, within a subscript expression (and unlike
 | |
| true double-quoting) the sequence `tt(\[)' becomes `tt([)', and similarly
 | |
| `tt(\])' becomes `tt(])'.  This applies even in cases where a backslash is
 | |
| not normally required; for example, the pattern `tt([^[])' (to match any
 | |
| character other than an open bracket) should be written `tt([^\[])' in a
 | |
| reverse-subscript pattern.  However, note that `tt(\[^\[\])' and even
 | |
| `tt(\[^[])' mean the em(same) thing, because backslashes are always
 | |
| stripped when they appear before brackets!
 | |
| 
 | |
| The same rule applies to parentheses (`tt(LPAR())' and `tt(RPAR())') and
 | |
| braces (`tt({)' and `tt(})'): they must appear either in balanced pairs or
 | |
| preceded by a backslash, and backslashes that protect parentheses or
 | |
| braces are removed during parsing.  This is because parameter expansions
 | |
| may be surrounded balanced braces, and subscript flags are introduced by
 | |
| balanced parenthesis.
 | |
| 
 | |
| The second difference is that a double-quote (`tt(")') may appear as part
 | |
| of a subscript expression without being preceded by a backslash, and
 | |
| therefore that the two characters `tt(\")' remain as two characters in the
 | |
| subscript (in true double-quoting, `tt(\")' becomes `tt(")').  However,
 | |
| because of the standard shell quoting rules, any double-quotes that appear
 | |
| must occur in balanced pairs unless preceded by a backslash.  This makes
 | |
| it more difficult to write a subscript expression that contains an odd
 | |
| number of double-quote characters, but the reason for this difference is
 | |
| so that when a subscript expression appears inside true double-quotes, one
 | |
| can still write `tt(\")' (rather than `tt(\\\")') for `tt(")'.
 | |
| 
 | |
| To use an odd number of double quotes as a key in an assignment, use the
 | |
| tt(typeset) builtin and an enclosing pair of double quotes; to refer to
 | |
| the value of that key, again use double quotes:
 | |
| 
 | |
| example(typeset -A aa
 | |
| typeset "aa[one\"two\"three\"quotes]"=QQQ
 | |
| print "$aa[one\"two\"three\"quotes]")
 | |
| 
 | |
| It is important to note that the quoting rules do not change when a
 | |
| parameter expansion with a subscript is nested inside another subscript
 | |
| expression.  That is, it is not necessary to use additional backslashes
 | |
| within the inner subscript expression; they are removed only once, from
 | |
| the innermost subscript outwards.  Parameters are also expanded from the
 | |
| innermost subscript first, as each expansion is encountered left to right
 | |
| in the outer expression.
 | |
| 
 | |
| A further complication arises from a way in which subscript parsing is
 | |
| em(not) different from double quote parsing.  As in true double-quoting,
 | |
| the sequences `tt(\*)', and `tt(\@)' remain as two characters when they
 | |
| appear in a subscript expression.  To use a literal `tt(*)' or `tt(@)' as
 | |
| an associative array key, the `tt(e)' flag must be used:
 | |
| 
 | |
| example(typeset -A aa
 | |
| aa[(e)*]=star
 | |
| print $aa[(e)*])
 | |
| 
 | |
| A last detail must be considered when reverse subscripting is performed.
 | |
| Parameters appearing in the subscript expression are first expanded and
 | |
| then the complete expression is interpreted as a pattern.  This has two
 | |
| effects: first, parameters behave as if tt(GLOB_SUBST) were on (and it
 | |
| cannot be turned off); second, backslashes are interpreted twice, once
 | |
| when parsing the array subscript and again when parsing the pattern.  In a
 | |
| reverse subscript, it's necessary to use em(four) backslashes to cause a
 | |
| single backslash to match literally in the pattern.  For complex patterns,
 | |
| it is often easiest to assign the desired pattern to a parameter and then
 | |
| refer to that parameter in the subscript, because then the backslashes,
 | |
| brackets, parentheses, etc., are seen only when the complete expression is
 | |
| converted to a pattern.  To match the value of a parameter literally in a
 | |
| reverse subscript, rather than as a pattern,
 | |
| use `tt(${LPAR()q)tt(RPAR())var(name)tt(})' (\
 | |
| ifzman(see zmanref(zshexpn))\
 | |
| ifnzman(noderef(Parameter Expansion))\
 | |
| ) to quote the expanded value.
 | |
| 
 | |
| Note that the `tt(k)' and `tt(K)' flags are reverse subscripting for an
 | |
| ordinary array, but are em(not) reverse subscripting for an associative
 | |
| array!  (For an associative array, the keys in the array itself are
 | |
| interpreted as patterns by those flags; the subscript is a plain string
 | |
| in that case.)
 | |
| 
 | |
| One final note, not directly related to subscripting: the numeric names
 | |
| of positional parameters (\
 | |
| ifzman(described below)\
 | |
| ifnzman(noderef(Positional Parameters))\
 | |
| ) are parsed specially, so for example `tt($2foo)' is equivalent to
 | |
| `tt(${2}foo)'.  Therefore, to use subscript syntax to extract a substring
 | |
| from a positional parameter, the expansion must be surrounded by braces;
 | |
| for example, `tt(${2[3,5]})' evaluates to the third through fifth
 | |
| characters of the second positional parameter, but `tt($2[3,5])' is the
 | |
| entire second parameter concatenated with the filename generation pattern
 | |
| `tt([3,5])'.
 | |
| 
 | |
| texinode(Positional Parameters)(Local Parameters)(Array Parameters)(Parameters)
 | |
| sect(Positional Parameters)
 | |
| The positional parameters provide access to the command-line arguments
 | |
| of a shell function, shell script, or the shell itself; see
 | |
| noderef(Invocation), and also noderef(Functions).
 | |
| The parameter var(n), where var(n) is a number,
 | |
| is the var(n)th positional parameter.
 | |
| The parameters tt(*), tt(@) and tt(argv) are
 | |
| arrays containing all the positional parameters;
 | |
| thus `tt($argv[)var(n)tt(])', etc., is equivalent to simply `tt($)var(n)'.
 | |
| 
 | |
| Positional parameters may be changed after the shell or function starts by
 | |
| using the tt(set) builtin, by assigning to the tt(argv) array, or by direct
 | |
| assignment of the form `var(n)tt(=)var(value)' where var(n) is the number of
 | |
| the positional parameter to be changed.  This also creates (with empty
 | |
| values) any of the positions from 1 to var(n) that do not already have
 | |
| values.  Note that, because the positional parameters form an array, an
 | |
| array assignment of the form `var(n)tt(=LPAR())var(value) ...tt(RPAR())' is
 | |
| allowed, and has the effect of shifting all the values at positions greater
 | |
| than var(n) by as many positions as necessary to accommodate the new values.
 | |
| 
 | |
| texinode(Local Parameters)(Parameters Set By The Shell)(Positional Parameters)(Parameters)
 | |
| sect(Local Parameters)
 | |
| Shell function executions delimit scopes for shell parameters.
 | |
| (Parameters are dynamically scoped.)  The tt(typeset) builtin, and its
 | |
| alternative forms tt(declare), tt(integer), tt(local) and tt(readonly)
 | |
| (but not tt(export)), can be used to declare a parameter as being local
 | |
| to the innermost scope.
 | |
| 
 | |
| When a parameter is read or assigned to, the
 | |
| innermost existing parameter of that name is used.  (That is, the
 | |
| local parameter hides any less-local parameter.)  However, assigning
 | |
| to a non-existent parameter, or declaring a new parameter with tt(export),
 | |
| causes it to be created in the em(outer)most scope.
 | |
| 
 | |
| Local parameters disappear when their scope ends.
 | |
| tt(unset) can be used to delete a parameter while it is still in scope;
 | |
| any outer parameter of the same name remains hidden.
 | |
| 
 | |
| Special parameters may also be made local; they retain their special
 | |
| attributes unless either the existing or the newly-created parameter
 | |
| has the tt(-h) (hide) attribute.  This may have unexpected effects:
 | |
| there is no default value, so if there is no assignment at the
 | |
| point the variable is made local, it will be set to an empty value (or zero
 | |
| in the case of integers).  
 | |
| The following:
 | |
| 
 | |
| example(typeset PATH=/new/directory:$PATH)
 | |
| 
 | |
| is valid for temporarily allowing the shell or programmes called from it to
 | |
| find the programs in tt(/new/directory) inside a function.
 | |
| 
 | |
| Note that the restriction in older versions of zsh that local parameters
 | |
| were never exported has been removed.
 | |
| 
 | |
| texinode(Parameters Set By The Shell)(Parameters Used By The Shell)(Local Parameters)(Parameters)
 | |
| sect(Parameters Set By The Shell)
 | |
| The following parameters are automatically set by the shell:
 | |
| 
 | |
| startitem()
 | |
| vindex(!)
 | |
| item(tt(!) <S>)(
 | |
| The process ID of the last background command invoked.
 | |
| )
 | |
| vindex(#)
 | |
| item(tt(#) <S>)(
 | |
| The number of positional parameters in decimal.  Note that some confusion
 | |
| may occur with the syntax tt($#)var(param) which substitutes the length of
 | |
| var(param).  Use tt(${#}) to resolve ambiguities.  In particular, the
 | |
| sequence `tt($#-)var(...)' in an arithmetic expression is interpreted as
 | |
| the length of the parameter tt(-), q.v.
 | |
| )
 | |
| vindex(ARGC)
 | |
| item(tt(ARGC) <S> <Z>)(
 | |
| Same as tt(#).
 | |
| )
 | |
| vindex($)
 | |
| item(tt($) <S>)(
 | |
| The process ID of this shell.
 | |
| )
 | |
| vindex(-)
 | |
| item(tt(-) <S>)(
 | |
| Flags supplied to the shell on invocation or by the tt(set)
 | |
| or tt(setopt) commands.
 | |
| )
 | |
| vindex(*)
 | |
| item(tt(*) <S>)(
 | |
| An array containing the positional parameters.
 | |
| )
 | |
| vindex(argv)
 | |
| item(tt(argv) <S> <Z>)(
 | |
| Same as tt(*).  Assigning to tt(argv) changes the local positional
 | |
| parameters, but tt(argv) is em(not) itself a local parameter.
 | |
| Deleting tt(argv) with tt(unset) in any function deletes it everywhere,
 | |
| although only the innermost positional parameter array is deleted (so
 | |
| tt(*) and tt(@) in other scopes are not affected).
 | |
| )
 | |
| vindex(@)
 | |
| item(tt(@) <S>)(
 | |
| Same as tt(argv[@]), even when tt(argv) is not set.
 | |
| )
 | |
| vindex(?)
 | |
| item(tt(?) <S>)(
 | |
| The exit value returned by the last command.
 | |
| )
 | |
| vindex(0)
 | |
| item(tt(0) <S>)(
 | |
| The name used to invoke the current shell.  If the tt(FUNCTION_ARGZERO) option
 | |
| is set, this is set temporarily within a shell function to the name of the
 | |
| function, and within a sourced script to the name of the script.
 | |
| )
 | |
| vindex(status)
 | |
| item(tt(status) <S> <Z>)(
 | |
| Same as tt(?).
 | |
| )
 | |
| vindex(pipestatus)
 | |
| item(tt(pipestatus) <S> <Z>)(
 | |
| An array containing the exit values returned by all commands in the
 | |
| last pipeline.
 | |
| )
 | |
| vindex(_)
 | |
| item(tt(_) <S>)(
 | |
| The last argument of the previous command.
 | |
| Also, this parameter is set in the environment of every command
 | |
| executed to the full pathname of the command.
 | |
| )
 | |
| vindex(CPUTYPE)
 | |
| item(tt(CPUTYPE))(
 | |
| The machine type (microprocessor class or machine model),
 | |
| as determined at run time.
 | |
| )
 | |
| vindex(EGID)
 | |
| item(tt(EGID) <S>)(
 | |
| The effective group ID of the shell process.  If you have sufficient
 | |
| privileges, you may change the effective group ID of the shell
 | |
| process by assigning to this parameter.  Also (assuming sufficient
 | |
| privileges), you may start a single command with a different
 | |
| effective group ID by `tt(LPAR()EGID=)var(gid)tt(; command+RPAR())'
 | |
| )
 | |
| vindex(EUID)
 | |
| item(tt(EUID) <S>)(
 | |
| The effective user ID of the shell process.  If you have sufficient
 | |
| privileges, you may change the effective user ID of the shell process
 | |
| by assigning to this parameter.  Also (assuming sufficient privileges),
 | |
| you may start a single command with a different
 | |
| effective user ID by `tt(LPAR()EUID=)var(uid)tt(; command+RPAR())'
 | |
| )
 | |
| vindex(ERRNO)
 | |
| item(tt(ERRNO) <S>)(
 | |
| The value of errno (see manref(errno)(3))
 | |
| as set by the most recently failed system call.
 | |
| This value is system dependent and is intended for debugging
 | |
| purposes.
 | |
| )
 | |
| vindex(GID)
 | |
| item(tt(GID) <S>)(
 | |
| The real group ID of the shell process.  If you have sufficient privileges,
 | |
| you may change the group ID of the shell process by assigning to this
 | |
| parameter.  Also (assuming sufficient privileges), you may start a single
 | |
| command under a different
 | |
| group ID by `tt(LPAR()GID=)var(gid)tt(; command+RPAR())'
 | |
| )
 | |
| vindex(HOST)
 | |
| item(tt(HOST))(
 | |
| The current hostname.
 | |
| )
 | |
| vindex(LINENO)
 | |
| item(tt(LINENO) <S>)(
 | |
| The line number of the current line within the current script, sourced
 | |
| file, or shell function being executed, whichever was started most
 | |
| recently.  Note that in the case of shell functions the line
 | |
| number refers to the function as it appeared in the original definition,
 | |
| not necessarily as displayed by the tt(functions) builtin.
 | |
| )
 | |
| vindex(LOGNAME)
 | |
| item(tt(LOGNAME))(
 | |
| If the corresponding variable is not set in the environment of the
 | |
| shell, it is initialized to the login name corresponding to the
 | |
| current login session. This parameter is exported by default but
 | |
| this can be disabled using the tt(typeset) builtin.
 | |
| )
 | |
| vindex(MACHTYPE)
 | |
| item(tt(MACHTYPE))(
 | |
| The machine type (microprocessor class or machine model),
 | |
| as determined at compile time.
 | |
| )
 | |
| vindex(OLDPWD)
 | |
| item(tt(OLDPWD))(
 | |
| The previous working directory.  This is set when the shell initializes
 | |
| and whenever the directory changes.
 | |
| )
 | |
| vindex(OPTARG)
 | |
| item(tt(OPTARG) <S>)(
 | |
| The value of the last option argument processed by the tt(getopts)
 | |
| command.
 | |
| )
 | |
| vindex(OPTIND)
 | |
| item(tt(OPTIND) <S>)(
 | |
| The index of the last option argument processed by the tt(getopts)
 | |
| command.
 | |
| )
 | |
| vindex(OSTYPE)
 | |
| item(tt(OSTYPE))(
 | |
| The operating system, as determined at compile time.
 | |
| )
 | |
| vindex(PPID)
 | |
| item(tt(PPID) <S>)(
 | |
| The process ID of the parent of the shell.
 | |
| )
 | |
| vindex(PWD)
 | |
| item(tt(PWD))(
 | |
| The present working directory.  This is set when the shell initializes
 | |
| and whenever the directory changes.
 | |
| )
 | |
| vindex(RANDOM)
 | |
| item(tt(RANDOM) <S>)(
 | |
| A pseudo-random integer from 0 to 32767, newly generated each time
 | |
| this parameter is referenced.  The random number generator
 | |
| can be seeded by assigning a numeric value to tt(RANDOM).
 | |
| 
 | |
| The values of tt(RANDOM) form an intentionally-repeatable pseudo-random
 | |
| sequence; subshells that reference tt(RANDOM) will result
 | |
| in identical pseudo-random values unless the value of tt(RANDOM) is
 | |
| referenced or seeded in the parent shell in between subshell invocations.
 | |
| )
 | |
| vindex(SECONDS)
 | |
| item(tt(SECONDS) <S>)(
 | |
| The number of seconds since shell invocation.  If this parameter
 | |
| is assigned a value, then the value returned upon reference
 | |
| will be the value that was assigned plus the number of seconds
 | |
| since the assignment.
 | |
| )
 | |
| vindex(SHLVL)
 | |
| item(tt(SHLVL) <S>)(
 | |
| Incremented by one each time a new shell is started.
 | |
| )
 | |
| vindex(signals)
 | |
| item(tt(signals))(
 | |
| An array containing the names of the signals.
 | |
| )
 | |
| vindex(TTY)
 | |
| item(tt(TTY))(
 | |
| The name of the tty associated with the shell, if any.
 | |
| )
 | |
| vindex(TTYIDLE)
 | |
| item(tt(TTYIDLE) <S>)(
 | |
| The idle time of the tty associated with the shell in seconds or -1 if there
 | |
| is no such tty.
 | |
| )
 | |
| vindex(UID)
 | |
| item(tt(UID) <S>)(
 | |
| The real user ID of the shell process.  If you have sufficient privileges,
 | |
| you may change the user ID of the shell by assigning to this parameter.
 | |
| Also (assuming sufficient privileges), you may start a single command
 | |
| under a different
 | |
| user ID by `tt(LPAR()UID=)var(uid)tt(; command+RPAR())'
 | |
| )
 | |
| vindex(USERNAME)
 | |
| item(tt(USERNAME) <S>)(
 | |
| The username corresponding to the real user ID of the shell process.  If you
 | |
| have sufficient privileges, you may change the username (and also the
 | |
| user ID and group ID) of the shell by assigning to this parameter.
 | |
| Also (assuming sufficient privileges), you may start a single command
 | |
| under a different username (and user ID and group ID)
 | |
| by `tt(LPAR()USERNAME=)var(username)tt(; command+RPAR())'
 | |
| )
 | |
| vindex(VENDOR)
 | |
| item(tt(VENDOR))(
 | |
| The vendor, as determined at compile time.
 | |
| )
 | |
| vindex(ZSH_NAME)
 | |
| item(tt(ZSH_NAME))(
 | |
| Expands to the basename of the command used to invoke this instance
 | |
| of zsh.
 | |
| )
 | |
| vindex(ZSH_VERSION)
 | |
| item(tt(ZSH_VERSION))(
 | |
| The version number of this zsh.
 | |
| )
 | |
| enditem()
 | |
| texinode(Parameters Used By The Shell)()(Parameters Set By The Shell)(Parameters)
 | |
| sect(Parameters Used By The Shell)
 | |
| The following parameters are used by the shell.
 | |
| 
 | |
| In cases where there are two parameters with an upper- and lowercase
 | |
| form of the same name, such as tt(path) and tt(PATH), the lowercase form
 | |
| is an array and the uppercase form is a scalar with the elements of the
 | |
| array joined together by colons.  These are similar to tied parameters
 | |
| created via `tt(typeset -T)'.  The normal use for the colon-separated
 | |
| form is for exporting to the environment, while the array form is easier
 | |
| to manipulate within the shell.  Note that unsetting either of the pair
 | |
| will unset the other; they retain their special properties when
 | |
| recreated, and recreating one of the pair will recreate the other.
 | |
| 
 | |
| startitem()
 | |
| vindex(ARGV0)
 | |
| item(tt(ARGV0))(
 | |
| If exported, its value is used as the tt(argv[0]) of external commands.
 | |
| Usually used in constructs like `tt(ARGV0=emacs nethack)'.
 | |
| )
 | |
| vindex(BAUD)
 | |
| item(tt(BAUD))(
 | |
| The baud rate of the current connection.  Used by the line editor
 | |
| update mechanism to compensate for a slow terminal by delaying
 | |
| updates until necessary.  This may be profitably set to a lower value
 | |
| in some circumstances, e.g.
 | |
| for slow modems dialing into a communications server which is connected
 | |
| to a host via a fast link; in this case, this variable
 | |
| would be set by default to the speed of the fast link, and not
 | |
| the modem.
 | |
| This parameter should be set to the baud
 | |
| rate of the slowest part of the link for best performance. The compensation
 | |
| mechanism can be turned off by setting the variable to zero.
 | |
| )
 | |
| vindex(cdpath)
 | |
| vindex(CDPATH)
 | |
| item(tt(cdpath) <S> <Z> (tt(CDPATH) <S>))(
 | |
| An array (colon-separated list)
 | |
| of directories specifying the search path for the tt(cd) command.
 | |
| )
 | |
| vindex(COLUMNS)
 | |
| item(tt(COLUMNS) <S>)(
 | |
| The number of columns for this terminal session.
 | |
| Used for printing select lists and for the line editor.
 | |
| )
 | |
| vindex(DIRSTACKSIZE)
 | |
| item(tt(DIRSTACKSIZE))(
 | |
| The maximum size of the directory stack.  If the
 | |
| stack gets larger than this, it will be truncated automatically.
 | |
| This is useful with the tt(AUTO_PUSHD) option.
 | |
| pindex(AUTO_PUSHD, use of)
 | |
| )
 | |
| vindex(ENV)
 | |
| item(tt(ENV))(
 | |
| If the tt(ENV) environment variable is set when zsh is invoked as tt(sh)
 | |
| or tt(ksh), tt($ENV) is sourced after the profile scripts.  The value of
 | |
| tt(ENV) is subjected to parameter expansion, command substitution, and
 | |
| arithmetic expansion before being interpreted as a pathname.  Note that
 | |
| tt(ENV) is em(not) used unless zsh is emulating bf(sh) or bf(ksh).
 | |
| )
 | |
| vindex(FCEDIT)
 | |
| item(tt(FCEDIT))(
 | |
| The default editor for the tt(fc) builtin.
 | |
| )
 | |
| vindex(fignore)
 | |
| vindex(FIGNORE)
 | |
| item(tt(fignore) <S> <Z> (tt(FIGNORE) <S>))(
 | |
| An array (colon separated list)
 | |
| containing the suffixes of files to be ignored
 | |
| during filename completion.  However, if completion only generates files
 | |
| with suffixes in this list, then these files are completed anyway.
 | |
| )
 | |
| vindex(fpath)
 | |
| vindex(FPATH)
 | |
| item(tt(fpath) <S> <Z> (tt(FPATH) <S>))(
 | |
| An array (colon separated list)
 | |
| of directories specifying the search path for
 | |
| function definitions.  This path is searched when a function
 | |
| with the tt(-u) attribute is referenced.  If an executable
 | |
| file is found, then it is read and executed in the current environment.
 | |
| )
 | |
| vindex(histchars)
 | |
| item(tt(histchars) <S>)(
 | |
| Three characters used by the shell's history and lexical analysis
 | |
| mechanism.  The first character signals the start of a history
 | |
| expansion (default `tt(!)').  The second character signals the
 | |
| start of a quick history substitution (default `tt(^)').  The third
 | |
| character is the comment character (default `tt(#)').
 | |
| )
 | |
| vindex(HISTCHARS)
 | |
| item(tt(HISTCHARS) <S> <Z>)(
 | |
| Same as tt(histchars).  (Deprecated.)
 | |
| )
 | |
| vindex(HISTFILE)
 | |
| item(tt(HISTFILE))(
 | |
| The file to save the history in when an interactive shell exits.
 | |
| If unset, the history is not saved.
 | |
| )
 | |
| vindex(HISTSIZE)
 | |
| item(tt(HISTSIZE) <S>)(
 | |
| The maximum number of events stored in the internal history list.
 | |
| If you use the tt(HIST_EXPIRE_DUPS_FIRST) option, setting this value
 | |
| larger than the tt(SAVEHIST) size will give you the difference as a
 | |
| cushion for saving duplicated history events.
 | |
| )
 | |
| vindex(HOME)
 | |
| item(tt(HOME) <S>)(
 | |
| The default argument for the tt(cd) command.
 | |
| )
 | |
| vindex(IFS)
 | |
| item(tt(IFS) <S>)(
 | |
| Internal field separators (by default space, tab, newline and NUL), that
 | |
| are used to separate words which result from
 | |
| command or parameter expansion and words read by
 | |
| the tt(read) builtin.  Any characters from the set space, tab and
 | |
| newline that appear in the IFS are called em(IFS white space).
 | |
| One or more IFS white space characters or one non-IFS white space
 | |
| character together with any adjacent IFS white space character delimit
 | |
| a field.  If an IFS white space character appears twice consecutively
 | |
| in the IFS, this character is treated as if it were not an IFS white
 | |
| space character.
 | |
| )
 | |
| vindex(KEYTIMEOUT)
 | |
| item(tt(KEYTIMEOUT))(
 | |
| The time the shell waits, in hundredths of seconds, for another key to
 | |
| be pressed when reading bound multi-character sequences.
 | |
| )
 | |
| vindex(LANG)
 | |
| item(tt(LANG) <S>)(
 | |
| This variable determines the locale category for any category not
 | |
| specifically selected via a variable starting with `tt(LC_)'.
 | |
| )
 | |
| vindex(LC_ALL)
 | |
| item(tt(LC_ALL) <S>)(
 | |
| This variable overrides the value of the `tt(LANG)' variable and the value
 | |
| of any of the other variables starting with `tt(LC_)'.
 | |
| )
 | |
| vindex(LC_COLLATE)
 | |
| item(tt(LC_COLLATE) <S>)(
 | |
| This variable determines the locale category for character collation
 | |
| information within ranges in glob brackets and for sorting.
 | |
| )
 | |
| vindex(LC_CTYPE)
 | |
| item(tt(LC_CTYPE) <S>)(
 | |
| This variable determines the locale category for character handling
 | |
| functions.
 | |
| )
 | |
| vindex(LC_MESSAGES)
 | |
| item(tt(LC_MESSAGES) <S>)(
 | |
| This variable determines the language in which messages should be
 | |
| written.  Note that zsh does not use message catalogs.
 | |
| )
 | |
| vindex(LC_NUMERIC)
 | |
| item(tt(LC_NUMERIC) <S>)(
 | |
| This variable affects the decimal point character and thousands
 | |
| separator character for the formatted input/output functions
 | |
| and string conversion functions.  Note that zsh ignores this
 | |
| setting when parsing floating point mathematical expressions.
 | |
| )
 | |
| vindex(LC_TIME)
 | |
| item(tt(LC_TIME) <S>)(
 | |
| This variable determines the locale category for date and time
 | |
| formatting in prompt escape sequences.
 | |
| )
 | |
| vindex(LINES)
 | |
| item(tt(LINES) <S>)(
 | |
| The number of lines for this terminal session.
 | |
| Used for printing select lists and for the line editor.
 | |
| )
 | |
| vindex(LISTMAX)
 | |
| item(tt(LISTMAX))(
 | |
| In the line editor, the number of matches to list without asking
 | |
| first. If the value is negative, the list will be shown if it spans at 
 | |
| most as many lines as given by the absolute value.
 | |
| If set to zero, the shell asks only if the top of the listing would scroll
 | |
| off the screen.
 | |
| )
 | |
| vindex(LOGCHECK)
 | |
| item(tt(LOGCHECK))(
 | |
| The interval in seconds between checks for login/logout activity
 | |
| using the tt(watch) parameter.
 | |
| )
 | |
| vindex(MAIL)
 | |
| item(tt(MAIL))(
 | |
| If this parameter is set and tt(mailpath) is not set,
 | |
| the shell looks for mail in the specified file.
 | |
| )
 | |
| vindex(MAILCHECK)
 | |
| item(tt(MAILCHECK))(
 | |
| The interval in seconds between checks for new mail.
 | |
| )
 | |
| vindex(mailpath)
 | |
| vindex(MAILPATH)
 | |
| item(tt(mailpath) <S> <Z> (tt(MAILPATH) <S>))(
 | |
| An array (colon-separated list) of filenames to check for
 | |
| new mail.  Each filename can be followed by a `tt(?)' and a
 | |
| message that will be printed.  The message will undergo
 | |
| parameter expansion, command substitution and arithmetic
 | |
| expansion with the variable tt($_) defined as the name
 | |
| of the file that has changed.  The default message is
 | |
| `tt(You have new mail)'.  If an element is a directory
 | |
| instead of a file the shell will recursively check every
 | |
| file in every subdirectory of the element.
 | |
| )
 | |
| vindex(manpath)
 | |
| vindex(MANPATH)
 | |
| item(tt(manpath) <S> <Z> (tt(MANPATH) <S> <Z>))(
 | |
| An array (colon-separated list)
 | |
| whose value is not used by the shell.  The tt(manpath)
 | |
| array can be useful, however, since setting it also sets
 | |
| tt(MANPATH), and vice versa.
 | |
| )
 | |
| vindex(module_path)
 | |
| vindex(MODULE_PATH)
 | |
| item(tt(module_path) <S> <Z> (tt(MODULE_PATH) <S>))(
 | |
| An array (colon-separated list)
 | |
| of directories that tt(zmodload)
 | |
| searches for dynamically loadable modules.
 | |
| This is initialized to a standard pathname,
 | |
| usually `tt(/usr/local/lib/zsh/$ZSH_VERSION)'.
 | |
| (The `tt(/usr/local/lib)' part varies from installation to installation.)
 | |
| For security reasons, any value set in the environment when the shell
 | |
| is started will be ignored.
 | |
| 
 | |
| These parameters only exist if the installation supports dynamic
 | |
| module loading.
 | |
| )
 | |
| vindex(NULLCMD)
 | |
| cindex(null command style)
 | |
| cindex(csh, null command style)
 | |
| cindex(ksh, null command style)
 | |
| item(tt(NULLCMD) <S>)(
 | |
| The command name to assume if a redirection is specified
 | |
| with no command.  Defaults to tt(cat).  For bf(sh)/bf(ksh)
 | |
| behavior, change this to tt(:).  For bf(csh)-like
 | |
| behavior, unset this parameter; the shell will print an
 | |
| error message if null commands are entered.
 | |
| )
 | |
| vindex(path)
 | |
| vindex(PATH)
 | |
| item(tt(path) <S> <Z> (tt(PATH) <S>))(
 | |
| An array (colon-separated list)
 | |
| of directories to search for commands.
 | |
| When this parameter is set, each directory is scanned
 | |
| and all files found are put in a hash table.
 | |
| )
 | |
| vindex(POSTEDIT)
 | |
| item(tt(POSTEDIT) <S>)(
 | |
| This string is output whenever the line editor exits.
 | |
| It usually contains termcap strings to reset the terminal.
 | |
| )
 | |
| vindex(PROMPT)
 | |
| xitem(tt(PROMPT) <S> <Z>)
 | |
| vindex(PROMPT2)
 | |
| xitem(tt(PROMPT2) <S> <Z>)
 | |
| vindex(PROMPT3)
 | |
| xitem(tt(PROMPT3) <S> <Z>)
 | |
| vindex(PROMPT4)
 | |
| item(tt(PROMPT4) <S> <Z>)(
 | |
| Same as tt(PS1), tt(PS2), tt(PS3) and tt(PS4),
 | |
| respectively.
 | |
| )
 | |
| vindex(prompt)
 | |
| item(tt(prompt) <S> <Z>)(
 | |
| Same as tt(PS1).
 | |
| )
 | |
| vindex(PS1)
 | |
| item(tt(PS1) <S>)(
 | |
| The primary prompt string, printed before a command is read.
 | |
| the default is `tt(%m%# )'.  It undergoes a special form of expansion
 | |
| before being displayed; see noderef(Prompt Expansion).
 | |
| )
 | |
| vindex(PS2)
 | |
| item(tt(PS2) <S>)(
 | |
| The secondary prompt, printed when the shell needs more information
 | |
| to complete a command.
 | |
| It is expanded in the same way as tt(PS1).
 | |
| The default is `tt(%_> )', which displays any shell constructs or quotation
 | |
| marks which are currently being processed.
 | |
| )
 | |
| vindex(PS3)
 | |
| item(tt(PS3) <S>)(
 | |
| Selection prompt used within a tt(select) loop.
 | |
| It is expanded in the same way as tt(PS1).
 | |
| The default is `tt(?# )'.
 | |
| )
 | |
| vindex(PS4)
 | |
| item(tt(PS4) <S>)(
 | |
| The execution trace prompt.  Default is `tt(PLUS()%N:%i> )', which displays
 | |
| the name of the current shell structure and the line number within it.
 | |
| In sh or ksh emulation, the default is `tt(PLUS() )'.
 | |
| )
 | |
| vindex(psvar)
 | |
| vindex(PSVAR)
 | |
| item(tt(psvar) <S> <Z> (tt(PSVAR) <S>))(
 | |
| An array (colon-separated list) whose first nine values can be used in
 | |
| tt(PROMPT) strings.  Setting tt(psvar) also sets tt(PSVAR), and
 | |
| vice versa.
 | |
| )
 | |
| vindex(READNULLCMD)
 | |
| item(tt(READNULLCMD) <S>)(
 | |
| The command name to assume if a single input redirection
 | |
| is specified with no command.  Defaults to tt(more).
 | |
| )
 | |
| vindex(REPORTTIME)
 | |
| item(tt(REPORTTIME))(
 | |
| If nonnegative, commands whose combined user and system execution times
 | |
| (measured in seconds) are greater than this value have timing
 | |
| statistics printed for them.
 | |
| )
 | |
| vindex(REPLY)
 | |
| item(tt(REPLY))(
 | |
| This parameter is reserved by convention to pass string values between
 | |
| shell scripts and shell builtins in situations where a function call or
 | |
| redirection are impossible or undesirable.  The tt(read) builtin and the
 | |
| tt(select) complex command may set tt(REPLY), and filename generation both
 | |
| sets and examines its value when evaluating certain expressions.  Some
 | |
| modules also employ tt(REPLY) for similar purposes.
 | |
| )
 | |
| vindex(reply)
 | |
| item(tt(reply))(
 | |
| As tt(REPLY), but for array values rather than strings.
 | |
| )
 | |
| vindex(RPROMPT)
 | |
| xitem(tt(RPROMPT) <S>)
 | |
| vindex(RPS1)
 | |
| item(tt(RPS1) <S>)(
 | |
| This prompt is displayed on the right-hand side of the screen
 | |
| when the primary prompt is being displayed on the left.
 | |
| This does not work if the tt(SINGLELINEZLE) option is set.
 | |
| It is expanded in the same way as tt(PS1).
 | |
| )
 | |
| vindex(RPROMPT2)
 | |
| xitem(tt(RPROMPT2) <S>)
 | |
| vindex(RPS2)
 | |
| item(tt(RPS2) <S>)(
 | |
| This prompt is displayed on the right-hand side of the screen
 | |
| when the secondary prompt is being displayed on the left.
 | |
| This does not work if the tt(SINGLELINEZLE) option is set.
 | |
| It is expanded in the same way as tt(PS2).
 | |
| )
 | |
| vindex(SAVEHIST)
 | |
| item(tt(SAVEHIST))(
 | |
| The maximum number of history events to save in the history file.
 | |
| )
 | |
| vindex(SPROMPT)
 | |
| item(tt(SPROMPT) <S>)(
 | |
| The prompt used for spelling correction.  The sequence
 | |
| `tt(%R)' expands to the string which presumably needs spelling
 | |
| correction, and `tt(%r)' expands to the proposed correction.
 | |
| All other prompt escapes are also allowed.
 | |
| )
 | |
| vindex(STTY)
 | |
| item(tt(STTY))(
 | |
| If this parameter is set in a command's environment, the shell runs the
 | |
| tt(stty) command with the value of this parameter as arguments in order to
 | |
| set up the terminal before executing the command. The modes apply only to the
 | |
| command, and are reset when it finishes or is suspended. If the command is
 | |
| suspended and continued later with the tt(fg) or tt(wait) builtins it will
 | |
| see the modes specified by tt(STTY), as if it were not suspended.  This
 | |
| (intentionally) does not apply if the command is continued via `tt(kill
 | |
| -CONT)'.  tt(STTY) is ignored if the command is run in the background, or
 | |
| if it is in the environment of the shell but not explicitly assigned to in
 | |
| the input line. This avoids running stty at every external command by
 | |
| accidentally exporting it. Also note that tt(STTY) should not be used for
 | |
| window size specifications; these will not be local to the command.
 | |
| )
 | |
| vindex(TERM)
 | |
| item(tt(TERM) <S>)(
 | |
| The type of terminal in use.  This is used when looking up termcap
 | |
| sequences.  An assignment to tt(TERM) causes zsh to re-initialize the
 | |
| terminal, even if the value does not change (e.g., `tt(TERM=$TERM)').  It
 | |
| is necessary to make such an assignment upon any change to the terminal
 | |
| definition database or terminal type in order for the new settings to
 | |
| take effect.
 | |
| )
 | |
| vindex(TIMEFMT)
 | |
| item(tt(TIMEFMT))(
 | |
| The format of process time reports with the tt(time) keyword.
 | |
| The default is `tt(%E real  %U user  %S system  %P %J)'.
 | |
| Recognizes the following escape sequences:
 | |
| 
 | |
| startsitem()
 | |
| sitem(tt(%%))(A `tt(%)'.)
 | |
| sitem(tt(%U))(CPU seconds spent in user mode.)
 | |
| sitem(tt(%S))(CPU seconds spent in kernel mode.)
 | |
| sitem(tt(%E))(Elapsed time in seconds.)
 | |
| sitem(tt(%P))(The CPU percentage, computed as (tt(%U)PLUS()tt(%S))/tt(%E).)
 | |
| sitem(tt(%J))(The name of this job.)
 | |
| endsitem()
 | |
| 
 | |
| A star may be inserted between the percent sign and flags printing time.
 | |
| This cause the time to be printed in
 | |
| `var(hh)tt(:)var(mm)tt(:)var(ss)tt(.)var(ttt)'
 | |
| format (hours and minutes are only printed if they are not zero).
 | |
| )
 | |
| vindex(TMOUT)
 | |
| item(tt(TMOUT))(
 | |
| If this parameter is nonzero, the shell will receive an tt(ALRM)
 | |
| signal if a command is not entered within the specified number of
 | |
| seconds after issuing a prompt. If there is a trap on tt(SIGALRM), it
 | |
| will be executed and a new alarm is scheduled using the value of the
 | |
| tt(TMOUT) parameter after executing the trap.  If no trap is set, and
 | |
| the idle time of the terminal is not less than the value of the
 | |
| tt(TMOUT) parameter, zsh terminates.  Otherwise a new alarm is
 | |
| scheduled to tt(TMOUT) seconds after the last keypress.
 | |
| )
 | |
| vindex(TMPPREFIX)
 | |
| item(tt(TMPPREFIX))(
 | |
| A pathname prefix which the shell will use for all temporary files.
 | |
| Note that this should include an initial part for the file name as
 | |
| well as any directory names.  The default is `tt(/tmp/zsh)'.
 | |
| )
 | |
| vindex(watch)
 | |
| vindex(WATCH)
 | |
| item(tt(watch) <S> <Z> (tt(WATCH) <S>))(
 | |
| An array (colon-separated list) of login/logout events to report.
 | |
| If it contains the single word `tt(all)', then all login/logout events
 | |
| are reported.  If it contains the single word `tt(notme)', then all
 | |
| events are reported as with `tt(all)' except tt($USERNAME).
 | |
| An entry in this list may consist of a username,
 | |
| an `tt(@)' followed by a remote hostname,
 | |
| and a `tt(%)' followed by a line (tty).
 | |
| Any or all of these components may be present in an entry;
 | |
| if a login/logout event matches all of them,
 | |
| it is reported.
 | |
| )
 | |
| vindex(WATCHFMT)
 | |
| item(tt(WATCHFMT))(
 | |
| The format of login/logout reports if the tt(watch) parameter is set.
 | |
| Default is `tt(%n has %a %l from %m)'.
 | |
| Recognizes the following escape sequences:
 | |
| 
 | |
| startitem()
 | |
| item(tt(%n))(
 | |
| The name of the user that logged in/out.
 | |
| )
 | |
| item(tt(%a))(
 | |
| The observed action, i.e. "logged on" or "logged off".
 | |
| )
 | |
| item(tt(%l))(
 | |
| The line (tty) the user is logged in on.
 | |
| )
 | |
| item(tt(%M))(
 | |
| The full hostname of the remote host.
 | |
| )
 | |
| item(tt(%m))(
 | |
| The hostname up to the first `tt(.)'.  If only the
 | |
| IP address is available or the utmp field contains
 | |
| the name of an X-windows display, the whole name is printed.
 | |
| 
 | |
| em(NOTE:)
 | |
| The `tt(%m)' and `tt(%M)' escapes will work only if there is a host name
 | |
| field in the utmp on your machine.  Otherwise they are
 | |
| treated as ordinary strings.
 | |
| )
 | |
| item(tt(%S) LPAR()tt(%s)RPAR())(
 | |
| Start (stop) standout mode.
 | |
| )
 | |
| item(tt(%U) LPAR()tt(%u)RPAR())(
 | |
| Start (stop) underline mode.
 | |
| )
 | |
| item(tt(%B) LPAR()tt(%b)RPAR())(
 | |
| Start (stop) boldface mode.
 | |
| )
 | |
| xitem(tt(%t))
 | |
| item(tt(%@))(
 | |
| The time, in 12-hour, am/pm format.
 | |
| )
 | |
| item(tt(%T))(
 | |
| The time, in 24-hour format.
 | |
| )
 | |
| item(tt(%w))(
 | |
| The date in `var(day)tt(-)var(dd)' format.
 | |
| )
 | |
| item(tt(%W))(
 | |
| The date in `var(mm)tt(/)var(dd)tt(/)var(yy)' format.
 | |
| )
 | |
| item(tt(%D))(
 | |
| The date in `var(yy)tt(-)var(mm)tt(-)var(dd)' format.
 | |
| )
 | |
| item(tt(%LPAR())var(x)tt(:)var(true-text)tt(:)var(false-text)tt(RPAR()))(
 | |
| Specifies a ternary expression.
 | |
| The character following the var(x) is
 | |
| arbitrary; the same character is used to separate the text
 | |
| for the "true" result from that for the "false" result.
 | |
| Both the separator and the right parenthesis may be escaped
 | |
| with a backslash.
 | |
| Ternary expressions may be nested.
 | |
| 
 | |
| The test character var(x) may be any one of `tt(l)', `tt(n)', `tt(m)'
 | |
| or `tt(M)', which indicate a `true' result if the corresponding
 | |
| escape sequence would return a non-empty value; or it may be `tt(a)',
 | |
| which indicates a `true' result if the watched user has logged in,
 | |
| or `false' if he has logged out.
 | |
| Other characters evaluate to neither true nor false; the entire
 | |
| expression is omitted in this case.
 | |
| 
 | |
| If the result is `true', then the var(true-text)
 | |
| is formatted according to the rules above and printed,
 | |
| and the var(false-text) is skipped.
 | |
| If `false', the var(true-text) is skipped and the var(false-text)
 | |
| is formatted and printed.
 | |
| Either or both of the branches may be empty, but
 | |
| both separators must be present in any case.
 | |
| )
 | |
| enditem()
 | |
| )
 | |
| vindex(WORDCHARS)
 | |
| item(tt(WORDCHARS) <S>)(
 | |
| A list of non-alphanumeric characters considered part of a word
 | |
| by the line editor.
 | |
| )
 | |
| vindex(ZBEEP)
 | |
| item(tt(ZBEEP))(
 | |
| If set, this gives a string of characters, which can use all the same codes
 | |
| as the tt(bindkey) command as described in
 | |
| ifzman(the zsh/zle module entry in zmanref(zshmodules))\
 | |
| ifnzman(noderef(The zsh/zle Module))\
 | |
| , that will be output to the terminal
 | |
| instead of beeping.  This may have a visible instead of an audible effect;
 | |
| for example, the string `tt(\e[?5h\e[?5l)' on a vt100 or xterm will have
 | |
| the effect of flashing reverse video on and off (if you usually use reverse
 | |
| video, you should use the string `tt(\e[?5l\e[?5h)' instead).  This takes
 | |
| precedence over the tt(NOBEEP) option.
 | |
| )
 | |
| vindex(ZDOTDIR)
 | |
| item(tt(ZDOTDIR))(
 | |
| The directory to search for shell startup files (.zshrc, etc),
 | |
| if not tt($HOME).
 | |
| )
 | |
| enditem()
 |