From 5cc55f2f734cc27c927acc308749b6aaa49eb125 Mon Sep 17 00:00:00 2001 From: Chet Ramey Date: Tue, 8 Jan 2019 11:03:27 -0500 Subject: [PATCH] commit bash-20190104 snapshot --- CHANGES | 24 ++ CHANGES-5.0 | 24 ++ CWRU/CWRU.chlog | 30 ++ Makefile.in | 2 +- configure | 20 +- configure.ac | 4 +- doc/FAQ | 2 +- doc/bash.0 | 543 +++++++++++++++++----------------- doc/bash.1 | 5 +- doc/bash.html | 7 +- doc/bash.info | 153 +++++----- doc/bash.pdf | Bin 376826 -> 376866 bytes doc/bash.ps | 12 +- doc/bashref.dvi | Bin 767724 -> 767804 bytes doc/bashref.html | 5 +- doc/bashref.info | 153 +++++----- doc/bashref.log | 6 +- doc/bashref.pdf | Bin 753076 -> 753125 bytes doc/bashref.ps | 79 ++--- doc/bashref.texi | 5 +- doc/builtins.0 | 497 +++++++++++++++---------------- doc/builtins.ps | 12 +- doc/rbash.ps | 2 +- examples/loadables/basename.c | 1 + execute_cmd.c | 3 + hashlib.c | 2 + lib/malloc/malloc.c | 4 + lib/sh/unicode.c | 8 +- parse.y | 3 - tests/RUN-ONE-TEST | 2 +- version.c | 4 +- version2.c | 4 +- 32 files changed, 857 insertions(+), 759 deletions(-) diff --git a/CHANGES b/CHANGES index 16e484826..262fd6568 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,27 @@ +This document details the changes between this version, bash-5.0-release, and +the previous version, bash-5.0-rc1. + +1. Changes to Bash + +a. Tilde expansion isn't performed on indexed array subscripts, even for + backwards compatibility. + +b. The shell doesn't exit in posix mode if the eval builtin gets a parse + error when run by the command builtin. + +c. Fixed a bug that caused a shell comment in an alias to not find the end + of the alias properly. + +d. Reverted a change from April, 2018 that caused strings containing + backslashes to be flagged as glob patterns. + +2. Changes to Readline + +3. New Features in Bash + +4. New Features in Readline + +------------------------------------------------------------------------------ This document details the changes between this version, bash-5.0-rc1, and the previous version, bash-5.0-beta2. diff --git a/CHANGES-5.0 b/CHANGES-5.0 index a4c3d227a..add1f554d 100644 --- a/CHANGES-5.0 +++ b/CHANGES-5.0 @@ -1,3 +1,27 @@ +This document details the changes between this version, bash-5.0-release, and +the previous version, bash-5.0-rc1. + +1. Changes to Bash + +a. Tilde expansion isn't performed on indexed array subscripts, even for + backwards compatibility. + +b. The shell doesn't exit in posix mode if the eval builtin gets a parse + error when run by the command builtin. + +c. Fixed a bug that caused a shell comment in an alias to not find the end + of the alias properly. + +d. Reverted a change from April, 2018 that caused strings containing + backslashes to be flagged as glob patterns. + +2. Changes to Readline + +3. New Features in Bash + +4. New Features in Readline + +------------------------------------------------------------------------------ This document details the changes between this version, bash-5.0-rc1, and the previous version, bash-5.0-beta2. diff --git a/CWRU/CWRU.chlog b/CWRU/CWRU.chlog index f05d6204b..7367e0bf0 100644 --- a/CWRU/CWRU.chlog +++ b/CWRU/CWRU.chlog @@ -4963,3 +4963,33 @@ lib/glob/glob_loop.c - INTERNAL_GLOB_PATTERN_P: revert change from 4/27 that makes this function return non-zero for a backslash in the string. Based on a report from Tom Ryder + +[bash-5.0 frozen] + +[bash-5.0 released] + + 1/6/2019 + -------- +execute_cmd.c + - execute_simple_command: catch all non-zero special builtin errors + (e.g. return not in a function) and make sure a non-interactive + posix-mode shell exits. Old code expected builtins to signal + internal fatal errors with code > 256. Fixes bug reported by + Robert Hailey + +examples/loadables/basename.c + - make sure to include bashgetopt.h. Reported by Angel + + +lib/malloc/malloc.c + - stdlib.h: include if botch isn't defined to provide a declaration + for abort() + +hashlib.c,Makefile.in + - fixes to make hash library testing work for others from + Eduardo Bustamante + +lib/readline/unicode.c + - u32toutf16: correct the second argument to be wchar_t *, and treat + it as such, even though it doesn't make a difference in practice. + Report and fix from Eduardo Bustamante diff --git a/Makefile.in b/Makefile.in index 5fcb44b01..a1f6c8076 100644 --- a/Makefile.in +++ b/Makefile.in @@ -968,7 +968,7 @@ depends: force #### PRIVATE TARGETS #### hashtest: hashlib.c - $(CC) -DTEST_HASHING $(CCFLAGS) $(TEST_NBUCKETS) -o $@ $(srcdir)/hashlib.c xmalloc.o $(INTL_LIB) + $(CC) -DTEST_HASHING $(CCFLAGS) $(TEST_NBUCKETS) -o $@ $(srcdir)/hashlib.c xmalloc.o $(INTL_LIB) $(MALLOC_LIBRARY) ############################ DEPENDENCIES ############################### diff --git a/configure b/configure index dd4c4e023..79f885349 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh # From configure.ac for Bash 5.0, version 5.005. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for bash 5.0-rc1. +# Generated by GNU Autoconf 2.69 for bash 5.0-maint. # # Report bugs to . # @@ -581,8 +581,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='bash' PACKAGE_TARNAME='bash' -PACKAGE_VERSION='5.0-rc1' -PACKAGE_STRING='bash 5.0-rc1' +PACKAGE_VERSION='5.0-maint' +PACKAGE_STRING='bash 5.0-maint' PACKAGE_BUGREPORT='bug-bash@gnu.org' PACKAGE_URL='' @@ -1394,7 +1394,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures bash 5.0-rc1 to adapt to many kinds of systems. +\`configure' configures bash 5.0-maint to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1459,7 +1459,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of bash 5.0-rc1:";; + short | recursive ) echo "Configuration of bash 5.0-maint:";; esac cat <<\_ACEOF @@ -1655,7 +1655,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -bash configure 5.0-rc1 +bash configure 5.0-maint generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2364,7 +2364,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by bash $as_me 5.0-rc1, which was +It was created by bash $as_me 5.0-maint, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2759,7 +2759,7 @@ ac_config_headers="$ac_config_headers config.h" BASHVERS=5.0 -RELSTATUS=rc1 +RELSTATUS=maint case "$RELSTATUS" in alp*|bet*|dev*|rc*|releng*|maint*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;; @@ -16968,7 +16968,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by bash $as_me 5.0-rc1, which was +This file was extended by bash $as_me 5.0-maint, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17034,7 +17034,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -bash config.status 5.0-rc1 +bash config.status 5.0-maint configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 20f9111e7..71ddc9082 100644 --- a/configure.ac +++ b/configure.ac @@ -5,7 +5,7 @@ dnl report bugs to chet@po.cwru.edu dnl dnl Process this file with autoconf to produce a configure script. -# Copyright (C) 1987-2018 Free Software Foundation, Inc. +# Copyright (C) 1987-2019 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify @@ -24,7 +24,7 @@ dnl Process this file with autoconf to produce a configure script. AC_REVISION([for Bash 5.0, version 5.005])dnl define(bashvers, 5.0) -define(relstatus, rc1) +define(relstatus, maint) AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org]) diff --git a/doc/FAQ b/doc/FAQ index e330270a9..104d0bc1c 100644 --- a/doc/FAQ +++ b/doc/FAQ @@ -1,4 +1,4 @@ -This is the Bash FAQ, version 4.14, for Bash version 4.4. +This is the Bash FAQ, version 4.15, for Bash version 5.0. This document contains a set of frequently-asked questions concerning Bash, the GNU Bourne-Again Shell. Bash is a freely-available command diff --git a/doc/bash.0 b/doc/bash.0 index 3a4d3d648..a062b8ace 100644 --- a/doc/bash.0 +++ b/doc/bash.0 @@ -5504,321 +5504,322 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS aassssoocc__eexxppaanndd__oonnccee If set, the shell suppresses multiple evaluation of associative array subscripts during arithmetic expres- - sion evaluation and while executing builtins that can - perform variable assignments. - aauuttooccdd If set, a command name that is the name of a directory - is executed as if it were the argument to the ccdd com- + sion evaluation, while executing builtins that can per- + form variable assignments, and while executing builtins + that perform array dereferencing. + aauuttooccdd If set, a command name that is the name of a directory + is executed as if it were the argument to the ccdd com- mand. This option is only used by interactive shells. ccddaabbllee__vvaarrss - If set, an argument to the ccdd builtin command that is - not a directory is assumed to be the name of a variable + If set, an argument to the ccdd builtin command that is + not a directory is assumed to be the name of a variable whose value is the directory to change to. ccddssppeellll If set, minor errors in the spelling of a directory com- - ponent in a ccdd command will be corrected. The errors + ponent in a ccdd command will be corrected. The errors checked for are transposed characters, a missing charac- - ter, and one character too many. If a correction is - found, the corrected filename is printed, and the com- - mand proceeds. This option is only used by interactive + ter, and one character too many. If a correction is + found, the corrected filename is printed, and the com- + mand proceeds. This option is only used by interactive shells. cchheecckkhhaasshh If set, bbaasshh checks that a command found in the hash ta- - ble exists before trying to execute it. If a hashed - command no longer exists, a normal path search is per- + ble exists before trying to execute it. If a hashed + command no longer exists, a normal path search is per- formed. cchheecckkjjoobbss If set, bbaasshh lists the status of any stopped and running - jobs before exiting an interactive shell. If any jobs + jobs before exiting an interactive shell. If any jobs are running, this causes the exit to be deferred until a - second exit is attempted without an intervening command - (see JJOOBB CCOONNTTRROOLL above). The shell always postpones + second exit is attempted without an intervening command + (see JJOOBB CCOONNTTRROOLL above). The shell always postpones exiting if any jobs are stopped. cchheecckkwwiinnssiizzee - If set, bbaasshh checks the window size after each external - (non-builtin) command and, if necessary, updates the - values of LLIINNEESS and CCOOLLUUMMNNSS. This option is enabled by + If set, bbaasshh checks the window size after each external + (non-builtin) command and, if necessary, updates the + values of LLIINNEESS and CCOOLLUUMMNNSS. This option is enabled by default. - ccmmddhhiisstt If set, bbaasshh attempts to save all lines of a multiple- - line command in the same history entry. This allows - easy re-editing of multi-line commands. This option is - enabled by default, but only has an effect if command + ccmmddhhiisstt If set, bbaasshh attempts to save all lines of a multiple- + line command in the same history entry. This allows + easy re-editing of multi-line commands. This option is + enabled by default, but only has an effect if command history is enabled, as described above under HHIISSTTOORRYY. ccoommppaatt3311 If set, bbaasshh changes its behavior to that of version 3.1 - with respect to quoted arguments to the [[[[ conditional + with respect to quoted arguments to the [[[[ conditional command's ==~~ operator and locale-specific string compar- - ison when using the [[[[ conditional command's << and >> - operators. Bash versions prior to bash-4.1 use ASCII + ison when using the [[[[ conditional command's << and >> + operators. Bash versions prior to bash-4.1 use ASCII collation and _s_t_r_c_m_p(3); bash-4.1 and later use the cur- rent locale's collation sequence and _s_t_r_c_o_l_l(3). ccoommppaatt3322 If set, bbaasshh changes its behavior to that of version 3.2 - with respect to locale-specific string comparison when - using the [[[[ conditional command's << and >> operators - (see previous item) and the effect of interrupting a - command list. Bash versions 3.2 and earlier continue - with the next command in the list after one terminates + with respect to locale-specific string comparison when + using the [[[[ conditional command's << and >> operators + (see previous item) and the effect of interrupting a + command list. Bash versions 3.2 and earlier continue + with the next command in the list after one terminates due to an interrupt. ccoommppaatt4400 If set, bbaasshh changes its behavior to that of version 4.0 - with respect to locale-specific string comparison when - using the [[[[ conditional command's << and >> operators - (see description of ccoommppaatt3311) and the effect of inter- - rupting a command list. Bash versions 4.0 and later - interrupt the list as if the shell received the inter- - rupt; previous versions continue with the next command + with respect to locale-specific string comparison when + using the [[[[ conditional command's << and >> operators + (see description of ccoommppaatt3311) and the effect of inter- + rupting a command list. Bash versions 4.0 and later + interrupt the list as if the shell received the inter- + rupt; previous versions continue with the next command in the list. ccoommppaatt4411 - If set, bbaasshh, when in _p_o_s_i_x _m_o_d_e, treats a single quote - in a double-quoted parameter expansion as a special - character. The single quotes must match (an even num- - ber) and the characters between the single quotes are - considered quoted. This is the behavior of posix mode - through version 4.1. The default bash behavior remains + If set, bbaasshh, when in _p_o_s_i_x _m_o_d_e, treats a single quote + in a double-quoted parameter expansion as a special + character. The single quotes must match (an even num- + ber) and the characters between the single quotes are + considered quoted. This is the behavior of posix mode + through version 4.1. The default bash behavior remains as in previous versions. ccoommppaatt4422 - If set, bbaasshh does not process the replacement string in - the pattern substitution word expansion using quote + If set, bbaasshh does not process the replacement string in + the pattern substitution word expansion using quote removal. ccoommppaatt4433 - If set, bbaasshh does not print a warning message if an - attempt is made to use a quoted compound array assign- - ment as an argument to ddeeccllaarree, makes word expansion - errors non-fatal errors that cause the current command - to fail (the default behavior is to make them fatal + If set, bbaasshh does not print a warning message if an + attempt is made to use a quoted compound array assign- + ment as an argument to ddeeccllaarree, makes word expansion + errors non-fatal errors that cause the current command + to fail (the default behavior is to make them fatal errors that cause the shell to exit), and does not reset - the loop state when a shell function is executed (this - allows bbrreeaakk or ccoonnttiinnuuee in a shell function to affect + the loop state when a shell function is executed (this + allows bbrreeaakk or ccoonnttiinnuuee in a shell function to affect loops in the caller's context). ccoommppaatt4444 - If set, bbaasshh saves the positional parameters to + If set, bbaasshh saves the positional parameters to BASH_ARGV and BASH_ARGC before they are used, regardless of whether or not extended debugging mode is enabled. ccoommpplleettee__ffuullllqquuoottee - If set, bbaasshh quotes all shell metacharacters in file- - names and directory names when performing completion. + If set, bbaasshh quotes all shell metacharacters in file- + names and directory names when performing completion. If not set, bbaasshh removes metacharacters such as the dol- - lar sign from the set of characters that will be quoted - in completed filenames when these metacharacters appear - in shell variable references in words to be completed. - This means that dollar signs in variable names that - expand to directories will not be quoted; however, any - dollar signs appearing in filenames will not be quoted, - either. This is active only when bash is using back- - slashes to quote completed filenames. This variable is - set by default, which is the default bash behavior in + lar sign from the set of characters that will be quoted + in completed filenames when these metacharacters appear + in shell variable references in words to be completed. + This means that dollar signs in variable names that + expand to directories will not be quoted; however, any + dollar signs appearing in filenames will not be quoted, + either. This is active only when bash is using back- + slashes to quote completed filenames. This variable is + set by default, which is the default bash behavior in versions through 4.2. ddiirreexxppaanndd - If set, bbaasshh replaces directory names with the results - of word expansion when performing filename completion. - This changes the contents of the readline editing buf- - fer. If not set, bbaasshh attempts to preserve what the + If set, bbaasshh replaces directory names with the results + of word expansion when performing filename completion. + This changes the contents of the readline editing buf- + fer. If not set, bbaasshh attempts to preserve what the user typed. ddiirrssppeellll - If set, bbaasshh attempts spelling correction on directory - names during word completion if the directory name ini- + If set, bbaasshh attempts spelling correction on directory + names during word completion if the directory name ini- tially supplied does not exist. - ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in - the results of pathname expansion. The filenames ````..'''' - and ````....'''' must always be matched explicitly, even if + ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in + the results of pathname expansion. The filenames ````..'''' + and ````....'''' must always be matched explicitly, even if ddoottgglloobb is set. eexxeeccffaaiill If set, a non-interactive shell will not exit if it can- - not execute the file specified as an argument to the - eexxeecc builtin command. An interactive shell does not + not execute the file specified as an argument to the + eexxeecc builtin command. An interactive shell does not exit if eexxeecc fails. eexxppaanndd__aalliiaasseess - If set, aliases are expanded as described above under + If set, aliases are expanded as described above under AALLIIAASSEESS. This option is enabled by default for interac- tive shells. eexxttddeebbuugg - If set at shell invocation, arrange to execute the - debugger profile before the shell starts, identical to - the ----ddeebbuuggggeerr option. If set after invocation, behav- + If set at shell invocation, arrange to execute the + debugger profile before the shell starts, identical to + the ----ddeebbuuggggeerr option. If set after invocation, behav- ior intended for use by debuggers is enabled: 11.. The --FF option to the ddeeccllaarree builtin displays the source file name and line number corresponding to each function name supplied as an argument. - 22.. If the command run by the DDEEBBUUGG trap returns a - non-zero value, the next command is skipped and + 22.. If the command run by the DDEEBBUUGG trap returns a + non-zero value, the next command is skipped and not executed. - 33.. If the command run by the DDEEBBUUGG trap returns a - value of 2, and the shell is executing in a sub- - routine (a shell function or a shell script exe- - cuted by the .. or ssoouurrccee builtins), the shell + 33.. If the command run by the DDEEBBUUGG trap returns a + value of 2, and the shell is executing in a sub- + routine (a shell function or a shell script exe- + cuted by the .. or ssoouurrccee builtins), the shell simulates a call to rreettuurrnn. - 44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described + 44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described in their descriptions above. - 55.. Function tracing is enabled: command substitu- + 55.. Function tracing is enabled: command substitu- tion, shell functions, and subshells invoked with (( _c_o_m_m_a_n_d )) inherit the DDEEBBUUGG and RREETTUURRNN traps. - 66.. Error tracing is enabled: command substitution, - shell functions, and subshells invoked with (( + 66.. Error tracing is enabled: command substitution, + shell functions, and subshells invoked with (( _c_o_m_m_a_n_d )) inherit the EERRRR trap. eexxttgglloobb If set, the extended pattern matching features described above under PPaatthhnnaammee EExxppaannssiioonn are enabled. eexxttqquuoottee - If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed - within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double + If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed + within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double quotes. This option is enabled by default. ffaaiillgglloobb - If set, patterns which fail to match filenames during + If set, patterns which fail to match filenames during pathname expansion result in an expansion error. ffoorrccee__ffiiggnnoorree - If set, the suffixes specified by the FFIIGGNNOORREE shell - variable cause words to be ignored when performing word + If set, the suffixes specified by the FFIIGGNNOORREE shell + variable cause words to be ignored when performing word completion even if the ignored words are the only possi- ble completions. See SSHHEELLLL VVAARRIIAABBLLEESS above for a - description of FFIIGGNNOORREE. This option is enabled by + description of FFIIGGNNOORREE. This option is enabled by default. gglloobbaasscciiiirraannggeess - If set, range expressions used in pattern matching - bracket expressions (see PPaatttteerrnn MMaattcchhiinngg above) behave - as if in the traditional C locale when performing com- + If set, range expressions used in pattern matching + bracket expressions (see PPaatttteerrnn MMaattcchhiinngg above) behave + as if in the traditional C locale when performing com- parisons. That is, the current locale's collating - sequence is not taken into account, so bb will not col- - late between AA and BB, and upper-case and lower-case + sequence is not taken into account, so bb will not col- + late between AA and BB, and upper-case and lower-case ASCII characters will collate together. gglloobbssttaarr If set, the pattern **** used in a pathname expansion con- - text will match all files and zero or more directories - and subdirectories. If the pattern is followed by a //, + text will match all files and zero or more directories + and subdirectories. If the pattern is followed by a //, only directories and subdirectories match. ggnnuu__eerrrrffmmtt If set, shell error messages are written in the standard GNU error message format. hhiissttaappppeenndd - If set, the history list is appended to the file named - by the value of the HHIISSTTFFIILLEE variable when the shell + If set, the history list is appended to the file named + by the value of the HHIISSTTFFIILLEE variable when the shell exits, rather than overwriting the file. hhiissttrreeeeddiitt - If set, and rreeaaddlliinnee is being used, a user is given the + If set, and rreeaaddlliinnee is being used, a user is given the opportunity to re-edit a failed history substitution. hhiissttvveerriiffyy - If set, and rreeaaddlliinnee is being used, the results of his- - tory substitution are not immediately passed to the - shell parser. Instead, the resulting line is loaded + If set, and rreeaaddlliinnee is being used, the results of his- + tory substitution are not immediately passed to the + shell parser. Instead, the resulting line is loaded into the rreeaaddlliinnee editing buffer, allowing further modi- fication. hhoossttccoommpplleettee If set, and rreeaaddlliinnee is being used, bbaasshh will attempt to - perform hostname completion when a word containing a @@ - is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE + perform hostname completion when a word containing a @@ + is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE above). This is enabled by default. hhuuppoonneexxiitt If set, bbaasshh will send SSIIGGHHUUPP to all jobs when an inter- active login shell exits. iinnhheerriitt__eerrrreexxiitt - If set, command substitution inherits the value of the - eerrrreexxiitt option, instead of unsetting it in the subshell - environment. This option is enabled when _p_o_s_i_x _m_o_d_e is + If set, command substitution inherits the value of the + eerrrreexxiitt option, instead of unsetting it in the subshell + environment. This option is enabled when _p_o_s_i_x _m_o_d_e is enabled. iinntteerraaccttiivvee__ccoommmmeennttss If set, allow a word beginning with ## to cause that word - and all remaining characters on that line to be ignored - in an interactive shell (see CCOOMMMMEENNTTSS above). This + and all remaining characters on that line to be ignored + in an interactive shell (see CCOOMMMMEENNTTSS above). This option is enabled by default. llaassttppiippee - If set, and job control is not active, the shell runs + If set, and job control is not active, the shell runs the last command of a pipeline not executed in the back- ground in the current shell environment. - lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line + lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line commands are saved to the history with embedded newlines rather than using semicolon separators where possible. llooccaallvvaarr__iinnhheerriitt If set, local variables inherit the value and attributes of a variable of the same name that exists at a previous - scope before any new value is assigned. The nameref + scope before any new value is assigned. The nameref attribute is not inherited. llooccaallvvaarr__uunnsseett - If set, calling uunnsseett on local variables in previous - function scopes marks them so subsequent lookups find - them unset until that function returns. This is identi- - cal to the behavior of unsetting local variables at the + If set, calling uunnsseett on local variables in previous + function scopes marks them so subsequent lookups find + them unset until that function returns. This is identi- + cal to the behavior of unsetting local variables at the current function scope. llooggiinn__sshheellll - The shell sets this option if it is started as a login - shell (see IINNVVOOCCAATTIIOONN above). The value may not be + The shell sets this option if it is started as a login + shell (see IINNVVOOCCAATTIIOONN above). The value may not be changed. mmaaiillwwaarrnn - If set, and a file that bbaasshh is checking for mail has - been accessed since the last time it was checked, the - message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis- + If set, and a file that bbaasshh is checking for mail has + been accessed since the last time it was checked, the + message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis- played. nnoo__eemmppttyy__ccmmdd__ccoommpplleettiioonn - If set, and rreeaaddlliinnee is being used, bbaasshh will not + If set, and rreeaaddlliinnee is being used, bbaasshh will not attempt to search the PPAATTHH for possible completions when completion is attempted on an empty line. nnooccaasseegglloobb - If set, bbaasshh matches filenames in a case-insensitive + If set, bbaasshh matches filenames in a case-insensitive fashion when performing pathname expansion (see PPaatthhnnaammee EExxppaannssiioonn above). nnooccaasseemmaattcchh - If set, bbaasshh matches patterns in a case-insensitive + If set, bbaasshh matches patterns in a case-insensitive fashion when performing matching while executing ccaassee or [[[[ conditional commands, when performing pattern substi- - tution word expansions, or when filtering possible com- + tution word expansions, or when filtering possible com- pletions as part of programmable completion. nnuullllgglloobb - If set, bbaasshh allows patterns which match no files (see - PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string, + If set, bbaasshh allows patterns which match no files (see + PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string, rather than themselves. pprrooggccoommpp If set, the programmable completion facilities (see PPrroo-- ggrraammmmaabbllee CCoommpplleettiioonn above) are enabled. This option is enabled by default. pprrooggccoommpp__aalliiaass - If set, and programmable completion is enabled, bbaasshh - treats a command name that doesn't have any completions - as a possible alias and attempts alias expansion. If it - has an alias, bbaasshh attempts programmable completion - using the command word resulting from the expanded + If set, and programmable completion is enabled, bbaasshh + treats a command name that doesn't have any completions + as a possible alias and attempts alias expansion. If it + has an alias, bbaasshh attempts programmable completion + using the command word resulting from the expanded alias. pprroommppttvvaarrss If set, prompt strings undergo parameter expansion, com- - mand substitution, arithmetic expansion, and quote - removal after being expanded as described in PPRROOMMPPTTIINNGG + mand substitution, arithmetic expansion, and quote + removal after being expanded as described in PPRROOMMPPTTIINNGG above. This option is enabled by default. rreessttrriicctteedd__sshheellll - The shell sets this option if it is started in + The shell sets this option if it is started in restricted mode (see RREESSTTRRIICCTTEEDD SSHHEELLLL below). The value - may not be changed. This is not reset when the startup - files are executed, allowing the startup files to dis- + may not be changed. This is not reset when the startup + files are executed, allowing the startup files to dis- cover whether or not a shell is restricted. sshhiifftt__vveerrbboossee - If set, the sshhiifftt builtin prints an error message when + If set, the sshhiifftt builtin prints an error message when the shift count exceeds the number of positional parame- ters. ssoouurrcceeppaatthh If set, the ssoouurrccee (..) builtin uses the value of PPAATTHH to - find the directory containing the file supplied as an + find the directory containing the file supplied as an argument. This option is enabled by default. xxppgg__eecchhoo - If set, the eecchhoo builtin expands backslash-escape + If set, the eecchhoo builtin expands backslash-escape sequences by default. ssuussppeenndd [--ff] - Suspend the execution of this shell until it receives a SSIIGGCCOONNTT + Suspend the execution of this shell until it receives a SSIIGGCCOONNTT signal. A login shell cannot be suspended; the --ff option can be used to override this and force the suspension. The return sta- - tus is 0 unless the shell is a login shell and --ff is not sup- + tus is 0 unless the shell is a login shell and --ff is not sup- plied, or if job control is not enabled. tteesstt _e_x_p_r [[ _e_x_p_r ]] Return a status of 0 (true) or 1 (false) depending on the evalu- ation of the conditional expression _e_x_p_r. Each operator and op- - erand must be a separate argument. Expressions are composed of - the primaries described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. - tteesstt does not accept any options, nor does it accept and ignore + erand must be a separate argument. Expressions are composed of + the primaries described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. + tteesstt does not accept any options, nor does it accept and ignore an argument of ---- as signifying the end of options. - Expressions may be combined using the following operators, + Expressions may be combined using the following operators, listed in decreasing order of precedence. The evaluation - depends on the number of arguments; see below. Operator prece- + depends on the number of arguments; see below. Operator prece- dence is used when there are five or more arguments. !! _e_x_p_r True if _e_x_p_r is false. (( _e_x_p_r )) - Returns the value of _e_x_p_r. This may be used to override + Returns the value of _e_x_p_r. This may be used to override the normal precedence of operators. _e_x_p_r_1 -aa _e_x_p_r_2 True if both _e_x_p_r_1 and _e_x_p_r_2 are true. @@ -5835,120 +5836,120 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS null. 2 arguments If the first argument is !!, the expression is true if and - only if the second argument is null. If the first argu- - ment is one of the unary conditional operators listed - above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is + only if the second argument is null. If the first argu- + ment is one of the unary conditional operators listed + above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is true if the unary test is true. If the first argument is not a valid unary conditional operator, the expression is false. 3 arguments The following conditions are applied in the order listed. - If the second argument is one of the binary conditional + If the second argument is one of the binary conditional operators listed above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the result of the expression is the result of the binary test - using the first and third arguments as operands. The --aa - and --oo operators are considered binary operators when - there are three arguments. If the first argument is !!, - the value is the negation of the two-argument test using + using the first and third arguments as operands. The --aa + and --oo operators are considered binary operators when + there are three arguments. If the first argument is !!, + the value is the negation of the two-argument test using the second and third arguments. If the first argument is exactly (( and the third argument is exactly )), the result - is the one-argument test of the second argument. Other- + is the one-argument test of the second argument. Other- wise, the expression is false. 4 arguments If the first argument is !!, the result is the negation of - the three-argument expression composed of the remaining + the three-argument expression composed of the remaining arguments. Otherwise, the expression is parsed and eval- - uated according to precedence using the rules listed + uated according to precedence using the rules listed above. 5 or more arguments - The expression is parsed and evaluated according to + The expression is parsed and evaluated according to precedence using the rules listed above. - When used with tteesstt or [[, the << and >> operators sort lexico- + When used with tteesstt or [[, the << and >> operators sort lexico- graphically using ASCII ordering. - ttiimmeess Print the accumulated user and system times for the shell and + ttiimmeess Print the accumulated user and system times for the shell and for processes run from the shell. The return status is 0. ttrraapp [--llpp] [[_a_r_g] _s_i_g_s_p_e_c ...] - The command _a_r_g is to be read and executed when the shell - receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a - single _s_i_g_s_p_e_c) or --, each specified signal is reset to its - original disposition (the value it had upon entrance to the - shell). If _a_r_g is the null string the signal specified by each - _s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes. - If _a_r_g is not present and --pp has been supplied, then the trap - commands associated with each _s_i_g_s_p_e_c are displayed. If no - arguments are supplied or if only --pp is given, ttrraapp prints the - list of commands associated with each signal. The --ll option - causes the shell to print a list of signal names and their cor- - responding numbers. Each _s_i_g_s_p_e_c is either a signal name - defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are + The command _a_r_g is to be read and executed when the shell + receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a + single _s_i_g_s_p_e_c) or --, each specified signal is reset to its + original disposition (the value it had upon entrance to the + shell). If _a_r_g is the null string the signal specified by each + _s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes. + If _a_r_g is not present and --pp has been supplied, then the trap + commands associated with each _s_i_g_s_p_e_c are displayed. If no + arguments are supplied or if only --pp is given, ttrraapp prints the + list of commands associated with each signal. The --ll option + causes the shell to print a list of signal names and their cor- + responding numbers. Each _s_i_g_s_p_e_c is either a signal name + defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are case insensitive and the SSIIGG prefix is optional. - If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_r_g is executed on exit - from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is exe- - cuted before every _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command, - _s_e_l_e_c_t command, every arithmetic _f_o_r command, and before the - first command executes in a shell function (see SSHHEELLLL GGRRAAMMMMAARR - above). Refer to the description of the eexxttddeebbuugg option to the + If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_r_g is executed on exit + from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is exe- + cuted before every _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command, + _s_e_l_e_c_t command, every arithmetic _f_o_r command, and before the + first command executes in a shell function (see SSHHEELLLL GGRRAAMMMMAARR + above). Refer to the description of the eexxttddeebbuugg option to the sshhoopptt builtin for details of its effect on the DDEEBBUUGG trap. If a _s_i_g_s_p_e_c is RREETTUURRNN, the command _a_r_g is executed each time a shell function or a script executed with the .. or ssoouurrccee builtins fin- ishes executing. - If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a + If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a pipeline (which may consist of a single simple command), a list, or a compound command returns a non-zero exit status, subject to - the following conditions. The EERRRR trap is not executed if the + the following conditions. The EERRRR trap is not executed if the failed command is part of the command list immediately following - a wwhhiillee or uunnttiill keyword, part of the test in an _i_f statement, + a wwhhiillee or uunnttiill keyword, part of the test in an _i_f statement, part of a command executed in a &&&& or |||| list except the command - following the final &&&& or ||||, any command in a pipeline but the - last, or if the command's return value is being inverted using - !!. These are the same conditions obeyed by the eerrrreexxiitt (--ee) + following the final &&&& or ||||, any command in a pipeline but the + last, or if the command's return value is being inverted using + !!. These are the same conditions obeyed by the eerrrreexxiitt (--ee) option. - Signals ignored upon entry to the shell cannot be trapped or - reset. Trapped signals that are not being ignored are reset to + Signals ignored upon entry to the shell cannot be trapped or + reset. Trapped signals that are not being ignored are reset to their original values in a subshell or subshell environment when - one is created. The return status is false if any _s_i_g_s_p_e_c is + one is created. The return status is false if any _s_i_g_s_p_e_c is invalid; otherwise ttrraapp returns true. ttyyppee [--aaffttppPP] _n_a_m_e [_n_a_m_e ...] - With no options, indicate how each _n_a_m_e would be interpreted if + With no options, indicate how each _n_a_m_e would be interpreted if used as a command name. If the --tt option is used, ttyyppee prints a - string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or - _f_i_l_e if _n_a_m_e is an alias, shell reserved word, function, - builtin, or disk file, respectively. If the _n_a_m_e is not found, - then nothing is printed, and an exit status of false is - returned. If the --pp option is used, ttyyppee either returns the + string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or + _f_i_l_e if _n_a_m_e is an alias, shell reserved word, function, + builtin, or disk file, respectively. If the _n_a_m_e is not found, + then nothing is printed, and an exit status of false is + returned. If the --pp option is used, ttyyppee either returns the name of the disk file that would be executed if _n_a_m_e were speci- fied as a command name, or nothing if ``type -t name'' would not - return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e, + return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e, even if ``type -t name'' would not return _f_i_l_e. If a command is hashed, --pp and --PP print the hashed value, which is not necessar- - ily the file that appears first in PPAATTHH. If the --aa option is - used, ttyyppee prints all of the places that contain an executable + ily the file that appears first in PPAATTHH. If the --aa option is + used, ttyyppee prints all of the places that contain an executable named _n_a_m_e. This includes aliases and functions, if and only if the --pp option is not also used. The table of hashed commands is - not consulted when using --aa. The --ff option suppresses shell + not consulted when using --aa. The --ff option suppresses shell function lookup, as with the ccoommmmaanndd builtin. ttyyppee returns true if all of the arguments are found, false if any are not found. uulliimmiitt [--HHSSaabbccddeeffiikkllmmnnppqqrrssttuuvvxxPPTT [_l_i_m_i_t]] - Provides control over the resources available to the shell and - to processes started by it, on systems that allow such control. + Provides control over the resources available to the shell and + to processes started by it, on systems that allow such control. The --HH and --SS options specify that the hard or soft limit is set - for the given resource. A hard limit cannot be increased by a - non-root user once it is set; a soft limit may be increased up - to the value of the hard limit. If neither --HH nor --SS is speci- + for the given resource. A hard limit cannot be increased by a + non-root user once it is set; a soft limit may be increased up + to the value of the hard limit. If neither --HH nor --SS is speci- fied, both the soft and hard limits are set. The value of _l_i_m_i_t can be a number in the unit specified for the resource or one of the special values hhaarrdd, ssoofftt, or uunnlliimmiitteedd, which stand for the - current hard limit, the current soft limit, and no limit, - respectively. If _l_i_m_i_t is omitted, the current value of the - soft limit of the resource is printed, unless the --HH option is + current hard limit, the current soft limit, and no limit, + respectively. If _l_i_m_i_t is omitted, the current value of the + soft limit of the resource is printed, unless the --HH option is given. When more than one resource is specified, the limit name and unit are printed before the value. Other options are inter- preted as follows: @@ -5957,12 +5958,12 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS --cc The maximum size of core files created --dd The maximum size of a process's data segment --ee The maximum scheduling priority ("nice") - --ff The maximum size of files written by the shell and its + --ff The maximum size of files written by the shell and its children --ii The maximum number of pending signals --kk The maximum number of kqueues that may be allocated --ll The maximum size that may be locked into memory - --mm The maximum resident set size (many systems do not honor + --mm The maximum resident set size (many systems do not honor this limit) --nn The maximum number of open file descriptors (most systems do not allow this value to be set) @@ -5971,53 +5972,53 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS --rr The maximum real-time scheduling priority --ss The maximum stack size --tt The maximum amount of cpu time in seconds - --uu The maximum number of processes available to a single + --uu The maximum number of processes available to a single user - --vv The maximum amount of virtual memory available to the + --vv The maximum amount of virtual memory available to the shell and, on some systems, to its children --xx The maximum number of file locks --PP The maximum number of pseudoterminals --TT The maximum number of threads - If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the - new value of the specified resource. If no option is given, - then --ff is assumed. Values are in 1024-byte increments, except - for --tt, which is in seconds; --pp, which is in units of 512-byte - blocks; --PP, --TT, --bb, --kk, --nn, and --uu, which are unscaled values; + If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the + new value of the specified resource. If no option is given, + then --ff is assumed. Values are in 1024-byte increments, except + for --tt, which is in seconds; --pp, which is in units of 512-byte + blocks; --PP, --TT, --bb, --kk, --nn, and --uu, which are unscaled values; and, when in posix mode, --cc and --ff, which are in 512-byte incre- ments. The return status is 0 unless an invalid option or argu- ment is supplied, or an error occurs while setting a new limit. uummaasskk [--pp] [--SS] [_m_o_d_e] The user file-creation mask is set to _m_o_d_e. If _m_o_d_e begins with - a digit, it is interpreted as an octal number; otherwise it is - interpreted as a symbolic mode mask similar to that accepted by - _c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is - printed. The --SS option causes the mask to be printed in sym- - bolic form; the default output is an octal number. If the --pp + a digit, it is interpreted as an octal number; otherwise it is + interpreted as a symbolic mode mask similar to that accepted by + _c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is + printed. The --SS option causes the mask to be printed in sym- + bolic form; the default output is an octal number. If the --pp option is supplied, and _m_o_d_e is omitted, the output is in a form that may be reused as input. The return status is 0 if the mode - was successfully changed or if no _m_o_d_e argument was supplied, + was successfully changed or if no _m_o_d_e argument was supplied, and false otherwise. uunnaalliiaass [-aa] [_n_a_m_e ...] - Remove each _n_a_m_e from the list of defined aliases. If --aa is - supplied, all alias definitions are removed. The return value + Remove each _n_a_m_e from the list of defined aliases. If --aa is + supplied, all alias definitions are removed. The return value is true unless a supplied _n_a_m_e is not a defined alias. uunnsseett [-ffvv] [-nn] [_n_a_m_e ...] - For each _n_a_m_e, remove the corresponding variable or function. + For each _n_a_m_e, remove the corresponding variable or function. If the --vv option is given, each _n_a_m_e refers to a shell variable, - and that variable is removed. Read-only variables may not be - unset. If --ff is specified, each _n_a_m_e refers to a shell func- - tion, and the function definition is removed. If the --nn option - is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute, - _n_a_m_e will be unset rather than the variable it references. --nn - has no effect if the --ff option is supplied. If no options are - supplied, each _n_a_m_e refers to a variable; if there is no vari- - able by that name, any function with that name is unset. Each - unset variable or function is removed from the environment - passed to subsequent commands. If any of CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANN-- + and that variable is removed. Read-only variables may not be + unset. If --ff is specified, each _n_a_m_e refers to a shell func- + tion, and the function definition is removed. If the --nn option + is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute, + _n_a_m_e will be unset rather than the variable it references. --nn + has no effect if the --ff option is supplied. If no options are + supplied, each _n_a_m_e refers to a variable; if there is no vari- + able by that name, any function with that name is unset. Each + unset variable or function is removed from the environment + passed to subsequent commands. If any of CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANN-- DDOOMM, SSEECCOONNDDSS, LLIINNEENNOO, HHIISSTTCCMMDD, FFUUNNCCNNAAMMEE, GGRROOUUPPSS, or DDIIRRSSTTAACCKK are unset, they lose their special properties, even if they are sub- sequently reset. The exit status is true unless a _n_a_m_e is read- @@ -6025,23 +6026,23 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS wwaaiitt [--ffnn] [_i_d _._._.] Wait for each specified child process and return its termination - status. Each _i_d may be a process ID or a job specification; if - a job spec is given, all processes in that job's pipeline are + status. Each _i_d may be a process ID or a job specification; if + a job spec is given, all processes in that job's pipeline are waited for. If _i_d is not given, all currently active child pro- cesses are waited for, and the return status is zero. If the --nn - option is supplied, wwaaiitt waits for any job to terminate and - returns its exit status. If the --ff option is supplied, and job + option is supplied, wwaaiitt waits for any job to terminate and + returns its exit status. If the --ff option is supplied, and job control is enabled, wwaaiitt forces _i_d to terminate before returning - its status, instead of returning when it changes status. If _i_d - specifies a non-existent process or job, the return status is - 127. Otherwise, the return status is the exit status of the + its status, instead of returning when it changes status. If _i_d + specifies a non-existent process or job, the return status is + 127. Otherwise, the return status is the exit status of the last process or job waited for. RREESSTTRRIICCTTEEDD SSHHEELLLL If bbaasshh is started with the name rrbbaasshh, or the --rr option is supplied at - invocation, the shell becomes restricted. A restricted shell is used - to set up an environment more controlled than the standard shell. It - behaves identically to bbaasshh with the exception that the following are + invocation, the shell becomes restricted. A restricted shell is used + to set up an environment more controlled than the standard shell. It + behaves identically to bbaasshh with the exception that the following are disallowed or not performed: +o changing directories with ccdd @@ -6050,16 +6051,16 @@ RREESSTTRRIICCTTEEDD SSHHEELLLL +o specifying command names containing // - +o specifying a filename containing a // as an argument to the .. + +o specifying a filename containing a // as an argument to the .. builtin command - +o specifying a filename containing a slash as an argument to the + +o specifying a filename containing a slash as an argument to the --pp option to the hhaasshh builtin command - +o importing function definitions from the shell environment at + +o importing function definitions from the shell environment at startup - +o parsing the value of SSHHEELLLLOOPPTTSS from the shell environment at + +o parsing the value of SSHHEELLLLOOPPTTSS from the shell environment at startup +o redirecting output using the >, >|, <>, >&, &>, and >> redirect- @@ -6068,10 +6069,10 @@ RREESSTTRRIICCTTEEDD SSHHEELLLL +o using the eexxeecc builtin command to replace the shell with another command - +o adding or deleting builtin commands with the --ff and --dd options + +o adding or deleting builtin commands with the --ff and --dd options to the eennaabbllee builtin command - +o using the eennaabbllee builtin command to enable disabled shell + +o using the eennaabbllee builtin command to enable disabled shell builtins +o specifying the --pp option to the ccoommmmaanndd builtin command @@ -6081,14 +6082,14 @@ RREESSTTRRIICCTTEEDD SSHHEELLLL These restrictions are enforced after any startup files are read. When a command that is found to be a shell script is executed (see CCOOMM-- - MMAANNDD EEXXEECCUUTTIIOONN above), rrbbaasshh turns off any restrictions in the shell + MMAANNDD EEXXEECCUUTTIIOONN above), rrbbaasshh turns off any restrictions in the shell spawned to execute the script. SSEEEE AALLSSOO _B_a_s_h _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l, Brian Fox and Chet Ramey _T_h_e _G_n_u _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y, Brian Fox and Chet Ramey _T_h_e _G_n_u _H_i_s_t_o_r_y _L_i_b_r_a_r_y, Brian Fox and Chet Ramey - _P_o_r_t_a_b_l_e _O_p_e_r_a_t_i_n_g _S_y_s_t_e_m _I_n_t_e_r_f_a_c_e _(_P_O_S_I_X_) _P_a_r_t _2_: _S_h_e_l_l _a_n_d _U_t_i_l_i_- + _P_o_r_t_a_b_l_e _O_p_e_r_a_t_i_n_g _S_y_s_t_e_m _I_n_t_e_r_f_a_c_e _(_P_O_S_I_X_) _P_a_r_t _2_: _S_h_e_l_l _a_n_d _U_t_i_l_i_- _t_i_e_s, IEEE -- http://pubs.opengroup.org/onlinepubs/9699919799/ http://tiswww.case.edu/~chet/bash/POSIX -- a description of posix mode @@ -6106,7 +6107,7 @@ FFIILLEESS _~_/_._b_a_s_h_r_c The individual per-interactive-shell startup file _~_/_._b_a_s_h___l_o_g_o_u_t - The individual login shell cleanup file, executed when a login + The individual login shell cleanup file, executed when a login shell exits _~_/_._i_n_p_u_t_r_c Individual _r_e_a_d_l_i_n_e initialization file @@ -6120,14 +6121,14 @@ AAUUTTHHOORRSS BBUUGG RREEPPOORRTTSS If you find a bug in bbaasshh,, you should report it. But first, you should - make sure that it really is a bug, and that it appears in the latest - version of bbaasshh. The latest version is always available from + make sure that it really is a bug, and that it appears in the latest + version of bbaasshh. The latest version is always available from _f_t_p_:_/_/_f_t_p_._g_n_u_._o_r_g_/_p_u_b_/_g_n_u_/_b_a_s_h_/. - Once you have determined that a bug actually exists, use the _b_a_s_h_b_u_g - command to submit a bug report. If you have a fix, you are encouraged - to mail that as well! Suggestions and `philosophical' bug reports may - be mailed to _b_u_g_-_b_a_s_h_@_g_n_u_._o_r_g or posted to the Usenet newsgroup + Once you have determined that a bug actually exists, use the _b_a_s_h_b_u_g + command to submit a bug report. If you have a fix, you are encouraged + to mail that as well! Suggestions and `philosophical' bug reports may + be mailed to _b_u_g_-_b_a_s_h_@_g_n_u_._o_r_g or posted to the Usenet newsgroup ggnnuu..bbaasshh..bbuugg. ALL bug reports should include: @@ -6138,7 +6139,7 @@ BBUUGG RREEPPOORRTTSS A description of the bug behaviour A short script or `recipe' which exercises the bug - _b_a_s_h_b_u_g inserts the first three items automatically into the template + _b_a_s_h_b_u_g inserts the first three items automatically into the template it provides for filing a bug report. Comments and bug reports concerning this manual page should be directed @@ -6155,10 +6156,10 @@ BBUUGGSS Shell builtin commands and functions are not stoppable/restartable. Compound commands and command sequences of the form `a ; b ; c' are not - handled gracefully when process suspension is attempted. When a - process is stopped, the shell immediately executes the next command in - the sequence. It suffices to place the sequence of commands between - parentheses to force it into a subshell, which may be stopped as a + handled gracefully when process suspension is attempted. When a + process is stopped, the shell immediately executes the next command in + the sequence. It suffices to place the sequence of commands between + parentheses to force it into a subshell, which may be stopped as a unit. Array variables may not (yet) be exported. diff --git a/doc/bash.1 b/doc/bash.1 index 8bcf7e914..e6cd08db3 100644 --- a/doc/bash.1 +++ b/doc/bash.1 @@ -9769,8 +9769,9 @@ The list of \fBshopt\fP options is: .TP 8 .B assoc_expand_once If set, the shell suppresses multiple evaluation of associative array -subscripts during arithmetic expression evaluation and while executing -builtins that can perform variable assignments. +subscripts during arithmetic expression evaluation, while executing +builtins that can perform variable assignments, +and while executing builtins that perform array dereferencing. .TP 8 .B autocd If set, a command name that is the name of a directory is executed as if diff --git a/doc/bash.html b/doc/bash.html index f70844b3a..3da23fb64 100644 --- a/doc/bash.html +++ b/doc/bash.html @@ -12388,8 +12388,9 @@ The list of shopt options is:
If set, the shell suppresses multiple evaluation of associative array -subscripts during arithmetic expression evaluation and while executing -builtins that can perform variable assignments. +subscripts during arithmetic expression evaluation, while executing +builtins that can perform variable assignments, +and while executing builtins that perform array dereferencing.
autocd
@@ -14037,6 +14038,6 @@ There may be only one active coprocess at a time.
This document was created by man2html from bash.1.
-Time: 21 December 2018 09:58:51 EST +Time: 02 January 2019 09:14:47 EST diff --git a/doc/bash.info b/doc/bash.info index c5ffb491d..39f32125f 100644 --- a/doc/bash.info +++ b/doc/bash.info @@ -4376,8 +4376,9 @@ This builtin allows you to change additional shell optional behavior. 'assoc_expand_once' If set, the shell suppresses multiple evaluation of associative array subscripts during arithmetic expression - evaluation and while executing builtins that can perform - variable assignments. + evaluation, while executing builtins that can perform variable + assignments, and while executing builtins that perform array + dereferencing. 'autocd' If set, a command name that is the name of a directory is @@ -11737,79 +11738,79 @@ Node: Bash Builtins145959 Node: Modifying Shell Behavior174884 Node: The Set Builtin175229 Node: The Shopt Builtin185642 -Node: Special Builtins203214 -Node: Shell Variables204193 -Node: Bourne Shell Variables204630 -Node: Bash Variables206734 -Node: Bash Features237194 -Node: Invoking Bash238093 -Node: Bash Startup Files244106 -Node: Interactive Shells249209 -Node: What is an Interactive Shell?249619 -Node: Is this Shell Interactive?250268 -Node: Interactive Shell Behavior251083 -Node: Bash Conditional Expressions254570 -Node: Shell Arithmetic259147 -Node: Aliases261964 -Node: Arrays264584 -Node: The Directory Stack269950 -Node: Directory Stack Builtins270734 -Node: Controlling the Prompt273702 -Node: The Restricted Shell276468 -Node: Bash POSIX Mode278293 -Node: Job Control289226 -Node: Job Control Basics289686 -Node: Job Control Builtins294654 -Node: Job Control Variables299381 -Node: Command Line Editing300537 -Node: Introduction and Notation302208 -Node: Readline Interaction303831 -Node: Readline Bare Essentials305022 -Node: Readline Movement Commands306805 -Node: Readline Killing Commands307765 -Node: Readline Arguments309683 -Node: Searching310727 -Node: Readline Init File312913 -Node: Readline Init File Syntax314060 -Node: Conditional Init Constructs334499 -Node: Sample Init File338695 -Node: Bindable Readline Commands341812 -Node: Commands For Moving343016 -Node: Commands For History344865 -Node: Commands For Text349160 -Node: Commands For Killing352548 -Node: Numeric Arguments355029 -Node: Commands For Completion356168 -Node: Keyboard Macros360359 -Node: Miscellaneous Commands361046 -Node: Readline vi Mode366999 -Node: Programmable Completion367906 -Node: Programmable Completion Builtins375686 -Node: A Programmable Completion Example386379 -Node: Using History Interactively391619 -Node: Bash History Facilities392303 -Node: Bash History Builtins395308 -Node: History Interaction399839 -Node: Event Designators403459 -Node: Word Designators404678 -Node: Modifiers406315 -Node: Installing Bash407717 -Node: Basic Installation408854 -Node: Compilers and Options412112 -Node: Compiling For Multiple Architectures412853 -Node: Installation Names414546 -Node: Specifying the System Type415364 -Node: Sharing Defaults416080 -Node: Operation Controls416753 -Node: Optional Features417711 -Node: Reporting Bugs428229 -Node: Major Differences From The Bourne Shell429423 -Node: GNU Free Documentation License446275 -Node: Indexes471452 -Node: Builtin Index471906 -Node: Reserved Word Index478733 -Node: Variable Index481181 -Node: Function Index496932 -Node: Concept Index510235 +Node: Special Builtins203284 +Node: Shell Variables204263 +Node: Bourne Shell Variables204700 +Node: Bash Variables206804 +Node: Bash Features237264 +Node: Invoking Bash238163 +Node: Bash Startup Files244176 +Node: Interactive Shells249279 +Node: What is an Interactive Shell?249689 +Node: Is this Shell Interactive?250338 +Node: Interactive Shell Behavior251153 +Node: Bash Conditional Expressions254640 +Node: Shell Arithmetic259217 +Node: Aliases262034 +Node: Arrays264654 +Node: The Directory Stack270020 +Node: Directory Stack Builtins270804 +Node: Controlling the Prompt273772 +Node: The Restricted Shell276538 +Node: Bash POSIX Mode278363 +Node: Job Control289296 +Node: Job Control Basics289756 +Node: Job Control Builtins294724 +Node: Job Control Variables299451 +Node: Command Line Editing300607 +Node: Introduction and Notation302278 +Node: Readline Interaction303901 +Node: Readline Bare Essentials305092 +Node: Readline Movement Commands306875 +Node: Readline Killing Commands307835 +Node: Readline Arguments309753 +Node: Searching310797 +Node: Readline Init File312983 +Node: Readline Init File Syntax314130 +Node: Conditional Init Constructs334569 +Node: Sample Init File338765 +Node: Bindable Readline Commands341882 +Node: Commands For Moving343086 +Node: Commands For History344935 +Node: Commands For Text349230 +Node: Commands For Killing352618 +Node: Numeric Arguments355099 +Node: Commands For Completion356238 +Node: Keyboard Macros360429 +Node: Miscellaneous Commands361116 +Node: Readline vi Mode367069 +Node: Programmable Completion367976 +Node: Programmable Completion Builtins375756 +Node: A Programmable Completion Example386449 +Node: Using History Interactively391689 +Node: Bash History Facilities392373 +Node: Bash History Builtins395378 +Node: History Interaction399909 +Node: Event Designators403529 +Node: Word Designators404748 +Node: Modifiers406385 +Node: Installing Bash407787 +Node: Basic Installation408924 +Node: Compilers and Options412182 +Node: Compiling For Multiple Architectures412923 +Node: Installation Names414616 +Node: Specifying the System Type415434 +Node: Sharing Defaults416150 +Node: Operation Controls416823 +Node: Optional Features417781 +Node: Reporting Bugs428299 +Node: Major Differences From The Bourne Shell429493 +Node: GNU Free Documentation License446345 +Node: Indexes471522 +Node: Builtin Index471976 +Node: Reserved Word Index478803 +Node: Variable Index481251 +Node: Function Index497002 +Node: Concept Index510305  End Tag Table diff --git a/doc/bash.pdf b/doc/bash.pdf index f892eb60e967eeac7d2fcaa3750d927704201a99..54c061ecee2e698f30bb94b92525293d6680f216 100644 GIT binary patch delta 8689 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 diff --git a/doc/bash.ps b/doc/bash.ps index 8c3c8dcb8..8b3b73389 100644 --- a/doc/bash.ps +++ b/doc/bash.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 %%Creator: groff version 1.22.3 -%%CreationDate: Fri Dec 21 09:58:50 2018 +%%CreationDate: Wed Jan 2 09:14:38 2019 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic @@ -8783,10 +8783,12 @@ E F0(sho)3.124 E .624(ws only those options which are)-.25 F 2.233 (options is:)2.5 E F1(assoc_expand_once)144 574.8 Q F0 1.945 (If set, the shell suppresses multiple e)184 586.8 R -.25(va)-.25 G 1.944(luation of associati).25 F 2.244 -.15(ve a)-.25 H 1.944 -(rray subscripts during).15 F .857(arithmetic e)184 598.8 R .857 -(xpression e)-.15 F -.25(va)-.25 G .857(luation and while e).25 F -.15 -(xe)-.15 G .857(cuting b).15 F .857(uiltins that can perform v)-.2 F -(ariable)-.25 E(assignments.)184 610.8 Q F1(autocd)144 622.8 Q F0 .2 +(rray subscripts during).15 F 2.556(arithmetic e)184 598.8 R 2.556 +(xpression e)-.15 F -.25(va)-.25 G 2.556(luation, while e).25 F -.15(xe) +-.15 G 2.557(cuting b).15 F 2.557(uiltins that can perform v)-.2 F +(ariable)-.25 E(assignments, and while e)184 610.8 Q -.15(xe)-.15 G +(cuting b).15 E(uiltins that perform array dereferencing.)-.2 E F1 +(autocd)144 622.8 Q F0 .2 (If set, a command name that is the name of a directory is e)184 622.8 R -.15(xe)-.15 G .199(cuted as if it were the ar).15 F(gu-)-.18 E (ment to the)184 634.8 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F diff --git a/doc/bashref.dvi b/doc/bashref.dvi index 024dadf7c401f3f34f1044c648b0ccde7d992146..ece4544e7eae18a0e9687c0856c65c70bf1573bf 100644 GIT binary patch delta 1829 zc-mFeeNYr-90zcJ&p!KhdwY9_ijbh_sFlG1fyhCTIG`2*;yED=DJKVdh@j`8rlxj! zNs`i zUNg53m}@4OEasS4bIg-TF_zf)s!^jxL0#@qn2zwXaaqqVY|% z?i6_{20sc+@au_caV*~ME0JrlIG6D^nmYr>Y8NGB;|%Nof3ZISF9Y8n=O^L<--YV6 z;4frmbfUe&=_p(F4l~-KMkmAAF?);F*50?L*-9&HE=PG;WGxf3Uu`ksaUn}99HlNt z*_wKE{BhTEo2#zSR#uCSKc;pk;b~%IEgD*GE3?=68z=wQnAunCZ@j7|v$x1uT<%<1 zXLCAjHQq@t*V&7lMa9~;tWX<*xw`rd-^0&V8@9t#GC3K$Wt5zuo~~ySN$)(IZh$U| z{9Jrek8+=*ve|K|4%xG*_;NfT!3_%YMm#9NM)mu8#-ir#zYsCI-h{_eub*Iw2Y1P5u^{w*uX@B&5S4{U^_ zO{5QysM<>SF~rczJ|e;u+Tf*r_O6Wjvwb6tQFn73OKNYh-x;!8Z;?Q=PU{o(Am?HXL;x%d_G4Mlpm#@zRS%d zw^neSdg!CLy`D2G@P`kHq@a?UYebbY;(++)1uWf)f-M&Ttk3bW<$o<8J9t-z=(aLtLgFRuc^+65OJrStIgp7M4;(DSQ@( zlrXB+vHXW3d_++_kv}29D-^q*;G1RGOtH?wm+7_D^do!@FH2~So~kg1*M^y++V%+{ z>ao3C1gTogYnx~TEiWnI`$SZdMYY+*SIe-HBF)WbO2{2Y)wzpjg5XOE_5=P}kXjpo z9&|bVFrOl$!=bd=aEu?ThZ>53E`E^+zdY!_hcDJY>_6-h-z%d_5>?y~KSxAElc~IS z_!br#+U&ybM%YPL`p=0%B-v#WG7PYauC$hHQsDlGa&xp$Xiz)Wb0O5ZDMG1;Qj$hA z5#|XV2Ck6m453wqR<*?~#F4dmLZbo>iY$k4MM92LpW;b*g^((PjcDkUe8)xSNHUM%b?|VZ;SQ-yvvw`~t;< z)551lxK0uNtMHZyhJ3IR?k{1H0%wVa-&pXFG*R4Sgc8ybD%yjfUptRt23Z{`1_zfo?wBEj8ayBT#G{Snckp80TRME!cE?xIzDm(g;AZrRiSD{nimyB(!%)IjpFEFFr} i_HiKbBuTDx*fJuSwpAkWXln#H-zqVPZ;L|bwa>qyMV$Ts delta 1796 zc-l?VdrVVT9KdmZr{~;9@4dYRH$a^T3zMi=EC>`f)FGWZkb#Xd(M>9#b|E~pxFBYV zQ*b(Qr0UhoY|h~x;-UrFaf^y3(*-7Tkod^RR9qC}6d#$2Q*pOFsO?|(^ZlJZ^1HW( z`z$wZT0RR8vRSNg7OO4AYMmIrambJ%;IXDfRXf%>V4VZ4a~N72xX)q;Za=Q2$Kv~F z;6M7t1RM>9P_0f|WW{TJBYM+{a}EAO(-N>%zc@y#60i&W!`?)^7<_Ncw&8r=h1Qge z4~cl@zQT&7u9C&tn_dz!q8`s|ELvXwv@qRST;X)PN=rP>l0wgiOI*d8(}cr<7go56 z-L8^l9`_Qb+f(2y@o1-0@MzIeSNEy!ho@N?ozTIACa}38#s~n zZ^3pIrfQL96sk==g-20$1Fklqua5?#@y+;}QOj|VFy_poxLbj3{u5L$OI7$T;P|y} z>@q{#^Ab*LZ{TJX{nHhY${*uG1wA?(kYpoK703-JIiX~#0y_grdlWHq@G|WlOLj^y zPxEdg@w73KJWx6yh&DW-x;80bWp!BtDbiQd%4BLL?qJAcpeKl=fPvvb7m1McrTUS1 zfy9cio#8+)d7_}JkA0dzFWw_vW{CAe(?Mu2$NjA8t9wz-g>XNa;8j}x8dnqqL2MP~ z+1v;^CW$LBvAg1TtDQ?$L1A}AFEes_J{{oCIN7zRE|?w~M)U89Z9#Ex!W>iF^oUO zbx5$BA?`evVuC7$hO1n^5nZ{-bmk71B||vFya6s=f(C|@BEN=!%CK7Hvp8gGW8y>j z-6CW&^o-)$BpAzZc^rR0fpHA&$$W{d-%UTt-r^Mr>{`Sw-bR1S;cv+(`zae;c%Rpw zqv*i}e8687!4WCT&U$OX6GoPxUrjtzf zj`1(akjjwO!RLywfuZXxUnD>K+_Jy<$2vaa5&@qidBZ2SfnFB(S8D?vLDAEY6!yqQn1;>R}6*dKw@=jr&8NLiC zWtWAmLGZ=%Vxx2a72Z{$#$Tvj+6cr^O%zv}AyjiN6*K69;o`7h*uwBjj2IG(#yw<; zo-Br#VLrnr?})>KP}WhVTlr#n5JXWO=?W_EVfF4Rae#wpdZ$Lrm
assoc_expand_once

If set, the shell suppresses multiple evaluation of associative array -subscripts during arithmetic expression evaluation and while executing -builtins that can perform variable assignments. +subscripts during arithmetic expression evaluation, while executing +builtins that can perform variable assignments, +and while executing builtins that perform array dereferencing.

autocd
diff --git a/doc/bashref.info b/doc/bashref.info index af31a79f5..934c9feb2 100644 --- a/doc/bashref.info +++ b/doc/bashref.info @@ -4376,8 +4376,9 @@ This builtin allows you to change additional shell optional behavior. 'assoc_expand_once' If set, the shell suppresses multiple evaluation of associative array subscripts during arithmetic expression - evaluation and while executing builtins that can perform - variable assignments. + evaluation, while executing builtins that can perform variable + assignments, and while executing builtins that perform array + dereferencing. 'autocd' If set, a command name that is the name of a directory is @@ -11737,79 +11738,79 @@ Node: Bash Builtins145959 Node: Modifying Shell Behavior174884 Node: The Set Builtin175229 Node: The Shopt Builtin185642 -Node: Special Builtins203214 -Node: Shell Variables204193 -Node: Bourne Shell Variables204630 -Node: Bash Variables206734 -Node: Bash Features237194 -Node: Invoking Bash238093 -Node: Bash Startup Files244106 -Node: Interactive Shells249209 -Node: What is an Interactive Shell?249619 -Node: Is this Shell Interactive?250268 -Node: Interactive Shell Behavior251083 -Node: Bash Conditional Expressions254570 -Node: Shell Arithmetic259147 -Node: Aliases261964 -Node: Arrays264584 -Node: The Directory Stack269950 -Node: Directory Stack Builtins270734 -Node: Controlling the Prompt273702 -Node: The Restricted Shell276468 -Node: Bash POSIX Mode278293 -Node: Job Control289226 -Node: Job Control Basics289686 -Node: Job Control Builtins294654 -Node: Job Control Variables299381 -Node: Command Line Editing300537 -Node: Introduction and Notation302208 -Node: Readline Interaction303831 -Node: Readline Bare Essentials305022 -Node: Readline Movement Commands306805 -Node: Readline Killing Commands307765 -Node: Readline Arguments309683 -Node: Searching310727 -Node: Readline Init File312913 -Node: Readline Init File Syntax314060 -Node: Conditional Init Constructs334499 -Node: Sample Init File338695 -Node: Bindable Readline Commands341812 -Node: Commands For Moving343016 -Node: Commands For History344865 -Node: Commands For Text349160 -Node: Commands For Killing352548 -Node: Numeric Arguments355029 -Node: Commands For Completion356168 -Node: Keyboard Macros360359 -Node: Miscellaneous Commands361046 -Node: Readline vi Mode366999 -Node: Programmable Completion367906 -Node: Programmable Completion Builtins375686 -Node: A Programmable Completion Example386379 -Node: Using History Interactively391619 -Node: Bash History Facilities392303 -Node: Bash History Builtins395308 -Node: History Interaction399839 -Node: Event Designators403459 -Node: Word Designators404678 -Node: Modifiers406315 -Node: Installing Bash407717 -Node: Basic Installation408854 -Node: Compilers and Options412112 -Node: Compiling For Multiple Architectures412853 -Node: Installation Names414546 -Node: Specifying the System Type415364 -Node: Sharing Defaults416080 -Node: Operation Controls416753 -Node: Optional Features417711 -Node: Reporting Bugs428229 -Node: Major Differences From The Bourne Shell429423 -Node: GNU Free Documentation License446275 -Node: Indexes471452 -Node: Builtin Index471906 -Node: Reserved Word Index478733 -Node: Variable Index481181 -Node: Function Index496932 -Node: Concept Index510235 +Node: Special Builtins203284 +Node: Shell Variables204263 +Node: Bourne Shell Variables204700 +Node: Bash Variables206804 +Node: Bash Features237264 +Node: Invoking Bash238163 +Node: Bash Startup Files244176 +Node: Interactive Shells249279 +Node: What is an Interactive Shell?249689 +Node: Is this Shell Interactive?250338 +Node: Interactive Shell Behavior251153 +Node: Bash Conditional Expressions254640 +Node: Shell Arithmetic259217 +Node: Aliases262034 +Node: Arrays264654 +Node: The Directory Stack270020 +Node: Directory Stack Builtins270804 +Node: Controlling the Prompt273772 +Node: The Restricted Shell276538 +Node: Bash POSIX Mode278363 +Node: Job Control289296 +Node: Job Control Basics289756 +Node: Job Control Builtins294724 +Node: Job Control Variables299451 +Node: Command Line Editing300607 +Node: Introduction and Notation302278 +Node: Readline Interaction303901 +Node: Readline Bare Essentials305092 +Node: Readline Movement Commands306875 +Node: Readline Killing Commands307835 +Node: Readline Arguments309753 +Node: Searching310797 +Node: Readline Init File312983 +Node: Readline Init File Syntax314130 +Node: Conditional Init Constructs334569 +Node: Sample Init File338765 +Node: Bindable Readline Commands341882 +Node: Commands For Moving343086 +Node: Commands For History344935 +Node: Commands For Text349230 +Node: Commands For Killing352618 +Node: Numeric Arguments355099 +Node: Commands For Completion356238 +Node: Keyboard Macros360429 +Node: Miscellaneous Commands361116 +Node: Readline vi Mode367069 +Node: Programmable Completion367976 +Node: Programmable Completion Builtins375756 +Node: A Programmable Completion Example386449 +Node: Using History Interactively391689 +Node: Bash History Facilities392373 +Node: Bash History Builtins395378 +Node: History Interaction399909 +Node: Event Designators403529 +Node: Word Designators404748 +Node: Modifiers406385 +Node: Installing Bash407787 +Node: Basic Installation408924 +Node: Compilers and Options412182 +Node: Compiling For Multiple Architectures412923 +Node: Installation Names414616 +Node: Specifying the System Type415434 +Node: Sharing Defaults416150 +Node: Operation Controls416823 +Node: Optional Features417781 +Node: Reporting Bugs428299 +Node: Major Differences From The Bourne Shell429493 +Node: GNU Free Documentation License446345 +Node: Indexes471522 +Node: Builtin Index471976 +Node: Reserved Word Index478803 +Node: Variable Index481251 +Node: Function Index497002 +Node: Concept Index510305  End Tag Table diff --git a/doc/bashref.log b/doc/bashref.log index 641c52aed..cc64bcd93 100644 --- a/doc/bashref.log +++ b/doc/bashref.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018/MacPorts 2018.47642_1) (preloaded format=pdfetex 2018.9.7) 18 DEC 2018 11:43 +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018/MacPorts 2018.47642_1) (preloaded format=pdfetex 2018.9.7) 2 JAN 2019 09:14 entering extended mode restricted \write18 enabled. file:line:error style messages enabled. @@ -273,7 +273,7 @@ texinfo.tex: doing @include of fdl.texi Here is how much of TeX's memory you used: 4066 strings out of 497100 47081 string characters out of 6206795 - 136581 words of memory out of 5000000 + 137581 words of memory out of 5000000 4846 multiletter control sequences out of 15000+600000 34315 words of font info for 116 fonts, out of 8000000 for 9000 51 hyphenation exceptions out of 8191 @@ -295,7 +295,7 @@ s/type1/public/amsfonts/cm/cmtt12.pfb> -Output written on bashref.pdf (184 pages, 753076 bytes). +Output written on bashref.pdf (184 pages, 753125 bytes). PDF statistics: 2624 PDF objects out of 2984 (max. 8388607) 2395 compressed objects within 24 object streams diff --git a/doc/bashref.pdf b/doc/bashref.pdf index b29a093ec790fcd9bd1365a8f49329d1a90e1ed6..0864d8bbd6600ea5339f96509148bbabe86b222b 100644 GIT binary patch delta 11305 zc-obCbx>W;lP?!{cbDK0+}%SiPH?-p2D!MNOCS(}2bT~e1ef5h!QDMTaCZ;z`2K2t zwYycX-tPOOyFT4#y8F!OGt<*k^T4_FzzGWlg~Hb$?2v;5Q+PZ;tiV?Tql%3>yr5Mx z^K1}Xo>G+06r(RVop7X^xIc>)CqtpQcFP@c{tLr^f7RpF*L6%!zOhA4Vq4W{7N~IM z-8O}mGyW~JkV4f!4e`eTq2{TKU&_q|SOP&$eG~(a7Q3WlenB_4+XpmdEB*3>%5*}p z;ddIb4D-Swp4mjQ37a(Z411`WPbGny346oOjnBu07Z?0^6gL26>6{ zy&l%j3WTJ@W61UMkKYmbn;xW(dL}Uu>@kf*$1TP+@u)SJCiFO?dHU!{2{7(DqmyBc z5eXFAs7GISwC|X+=QX{*4}b4e8|Af?zcacOFLhF^Z6M@%@e6P#z7R>OlO;PS;A}1! zDsre}iw%=3Wboh$ILXN;ll(w;QP}mAp-&W1x#(yrZQQhAHt>hG+<|Q8 zLg4E46&$!zXJg5IA*lfUx`w2oj@~bzTtDxlXHp{kHB9I8Gp0Rf8Mk32f-n($D|vns;4Ls00-UwE%WED=JIG@@NgQiHe?@iX*!>VxEc zz7ooZk&!$gJPHMry|vp4U^K<_zuWfzo7B7i)>xztLm$vy2rv)hCo

bqF}Yd`<5s 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 delta 11272 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 diff --git a/doc/bashref.ps b/doc/bashref.ps index 57bcfef28..d98176532 100644 --- a/doc/bashref.ps +++ b/doc/bashref.ps @@ -1,7 +1,7 @@ %!PS-Adobe-2.0 %%Creator: dvips(k) 5.998 Copyright 2018 Radical Eye Software %%Title: bashref.dvi -%%CreationDate: Tue Dec 18 16:43:47 2018 +%%CreationDate: Wed Jan 2 14:14:45 2019 %%Pages: 184 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 @@ -12,7 +12,7 @@ %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -D 600 -t letter -o bashref.ps bashref.dvi %DVIPSParameters: dpi=600 -%DVIPSSource: TeX output 2018.12.18:1143 +%DVIPSSource: TeX output 2019.01.02:0914 %%BeginProcSet: tex.pro 0 0 %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S @@ -12877,70 +12877,71 @@ b(to)h(the)g(p)s(ositional)g(parameters.)49 b(The)33 b Ft(-x)g Fu(and)f Ft(-v)h Fu(options)h(are)1110 518 y(turned)k(o\013.)68 b(If)38 b(there)i(are)f(no)g(argumen)m(ts,)j(the)e (p)s(ositional)g(parameters)1110 628 y(remain)30 b(unc)m(hanged.)630 -784 y(Using)d(`)p Ft(+)p Fu(')h(rather)f(than)g(`)p Ft(-)p +775 y(Using)d(`)p Ft(+)p Fu(')h(rather)f(than)g(`)p Ft(-)p Fu(')g(causes)h(these)f(options)h(to)g(b)s(e)e(turned)g(o\013.)40 -b(The)27 b(options)h(can)630 893 y(also)36 b(b)s(e)f(used)f(up)s(on)g +b(The)27 b(options)h(can)630 884 y(also)36 b(b)s(e)f(used)f(up)s(on)g (in)m(v)m(o)s(cation)j(of)e(the)g(shell.)56 b(The)34 b(curren)m(t)h(set)h(of)f(options)h(ma)m(y)g(b)s(e)630 -1003 y(found)29 b(in)h Ft($-)p Fu(.)630 1136 y(The)43 +994 y(found)29 b(in)h Ft($-)p Fu(.)630 1122 y(The)43 b(remaining)h(N)f Fr(argumen)m(ts)48 b Fu(are)c(p)s(ositional)g -(parameters)g(and)f(are)h(assigned,)j(in)630 1245 y(order,)30 +(parameters)g(and)f(are)h(assigned,)j(in)630 1232 y(order,)30 b(to)h Ft($1)p Fu(,)f Ft($2)p Fu(,)36 b(.)22 b(.)g(.)42 b Ft($N)p Fu(.)e(The)30 b(sp)s(ecial)h(parameter)g Ft(#)f -Fu(is)g(set)h(to)g(N.)630 1378 y(The)f(return)f(status)i(is)f(alw)m(a)m +Fu(is)g(set)h(to)g(N.)630 1360 y(The)f(return)f(status)i(is)f(alw)m(a)m (ys)i(zero)f(unless)f(an)g(in)m(v)-5 b(alid)31 b(option)g(is)f -(supplied.)150 1574 y Fk(4.3.2)63 b(The)41 b(Shopt)h(Builtin)150 -1721 y Fu(This)30 b(builtin)g(allo)m(ws)h(y)m(ou)g(to)g(c)m(hange)h +(supplied.)150 1548 y Fk(4.3.2)63 b(The)41 b(Shopt)h(Builtin)150 +1695 y Fu(This)30 b(builtin)g(allo)m(ws)h(y)m(ou)g(to)g(c)m(hange)h (additional)f(shell)f(optional)i(b)s(eha)m(vior.)150 -1877 y Ft(shopt)870 2010 y(shopt)46 b([-pqsu])g([-o])h([)p -Fj(optname)e Ft(...])630 2142 y Fu(T)-8 b(oggle)37 b(the)e(v)-5 +1842 y Ft(shopt)870 1970 y(shopt)46 b([-pqsu])g([-o])h([)p +Fj(optname)e Ft(...])630 2099 y Fu(T)-8 b(oggle)37 b(the)e(v)-5 b(alues)35 b(of)g(settings)h(con)m(trolling)g(optional)g(shell)f(b)s -(eha)m(vior.)55 b(The)34 b(settings)630 2252 y(can)24 +(eha)m(vior.)55 b(The)34 b(settings)630 2208 y(can)24 b(b)s(e)g(either)h(those)f(listed)h(b)s(elo)m(w,)h(or,)f(if)g(the)f Ft(-o)f Fu(option)i(is)f(used,)h(those)g(a)m(v)-5 b(ailable)26 -b(with)630 2362 y(the)k Ft(-o)f Fu(option)i(to)f(the)g +b(with)630 2318 y(the)k Ft(-o)f Fu(option)i(to)f(the)g Ft(set)f Fu(builtin)h(command)f(\(see)i(Section)g(4.3.1)g([The)f(Set)g -(Builtin],)630 2471 y(page)i(61\).)45 b(With)32 b(no)f(options,)h(or)g +(Builtin],)630 2427 y(page)i(61\).)45 b(With)32 b(no)f(options,)h(or)g (with)f(the)g Ft(-p)g Fu(option,)h(a)g(list)g(of)f(all)i(settable)g -(options)630 2581 y(is)g(displa)m(y)m(ed,)i(with)e(an)g(indication)h +(options)630 2537 y(is)g(displa)m(y)m(ed,)i(with)e(an)g(indication)h (of)g(whether)e(or)h(not)h(eac)m(h)g(is)g(set;)h(if)e -Fr(optnames)38 b Fu(are)630 2690 y(supplied,)25 b(the)g(output)g(is)g +Fr(optnames)38 b Fu(are)630 2647 y(supplied,)25 b(the)g(output)g(is)g (restricted)g(to)h(those)g(options.)39 b(The)24 b Ft(-p)h -Fu(option)g(causes)g(output)630 2800 y(to)30 b(b)s(e)f(displa)m(y)m(ed) +Fu(option)g(causes)g(output)630 2756 y(to)30 b(b)s(e)f(displa)m(y)m(ed) g(in)g(a)h(form)f(that)g(ma)m(y)h(b)s(e)f(reused)f(as)i(input.)39 -b(Other)29 b(options)g(ha)m(v)m(e)i(the)630 2910 y(follo)m(wing)h -(meanings:)630 3066 y Ft(-s)384 b Fu(Enable)30 b(\(set\))i(eac)m(h)f -Fr(optname)p Fu(.)630 3222 y Ft(-u)384 b Fu(Disable)31 -b(\(unset\))g(eac)m(h)h Fr(optname)p Fu(.)630 3378 y +b(Other)29 b(options)g(ha)m(v)m(e)i(the)630 2866 y(follo)m(wing)h +(meanings:)630 3013 y Ft(-s)384 b Fu(Enable)30 b(\(set\))i(eac)m(h)f +Fr(optname)p Fu(.)630 3160 y Ft(-u)384 b Fu(Disable)31 +b(\(unset\))g(eac)m(h)h Fr(optname)p Fu(.)630 3307 y Ft(-q)384 b Fu(Suppresses)28 b(normal)h(output;)h(the)g(return)e -(status)i(indicates)h(whether)e(the)1110 3487 y Fr(optname)37 +(status)i(indicates)h(whether)e(the)1110 3417 y Fr(optname)37 b Fu(is)31 b(set)h(or)f(unset.)43 b(If)31 b(m)m(ultiple)h Fr(optname)37 b Fu(argumen)m(ts)31 b(are)h(giv)m(en)1110 -3597 y(with)d Ft(-q)p Fu(,)g(the)g(return)f(status)h(is)g(zero)h(if)f -(all)h Fr(optnames)j Fu(are)d(enabled;)f(non-)1110 3706 -y(zero)i(otherwise.)630 3862 y Ft(-o)384 b Fu(Restricts)22 +3527 y(with)d Ft(-q)p Fu(,)g(the)g(return)f(status)h(is)g(zero)h(if)f +(all)h Fr(optnames)j Fu(are)d(enabled;)f(non-)1110 3636 +y(zero)i(otherwise.)630 3784 y Ft(-o)384 b Fu(Restricts)22 b(the)f(v)-5 b(alues)22 b(of)f Fr(optname)27 b Fu(to)22 b(b)s(e)e(those)i(de\014ned)e(for)h(the)g Ft(-o)f Fu(option)1110 -3972 y(to)31 b(the)g Ft(set)e Fu(builtin)h(\(see)h(Section)h(4.3.1)g -([The)e(Set)g(Builtin],)i(page)f(61\).)630 4128 y(If)e(either)i +3893 y(to)31 b(the)g Ft(set)e Fu(builtin)h(\(see)h(Section)h(4.3.1)g +([The)e(Set)g(Builtin],)i(page)f(61\).)630 4040 y(If)e(either)i Ft(-s)e Fu(or)h Ft(-u)f Fu(is)h(used)f(with)g(no)h Fr(optname)35 b Fu(argumen)m(ts,)c Ft(shopt)d Fu(sho)m(ws)h(only)h(those)630 -4238 y(options)h(whic)m(h)f(are)h(set)f(or)h(unset,)f(resp)s(ectiv)m -(ely)-8 b(.)630 4370 y(Unless)30 b(otherwise)h(noted,)g(the)g +4150 y(options)h(whic)m(h)f(are)h(set)f(or)h(unset,)f(resp)s(ectiv)m +(ely)-8 b(.)630 4278 y(Unless)30 b(otherwise)h(noted,)g(the)g Ft(shopt)d Fu(options)j(are)g(disabled)f(\(o\013)7 b(\))32 -b(b)m(y)e(default.)630 4503 y(The)d(return)f(status)i(when)f(listing)h +b(b)m(y)e(default.)630 4407 y(The)d(return)f(status)i(when)f(listing)h (options)g(is)f(zero)i(if)e(all)i Fr(optnames)i Fu(are)d(enabled,)g -(non-)630 4613 y(zero)40 b(otherwise.)66 b(When)39 b(setting)h(or)f +(non-)630 4516 y(zero)40 b(otherwise.)66 b(When)39 b(setting)h(or)f (unsetting)g(options,)i(the)e(return)f(status)h(is)g(zero)630 -4722 y(unless)30 b(an)g Fr(optname)36 b Fu(is)30 b(not)h(a)g(v)-5 -b(alid)30 b(shell)h(option.)630 4855 y(The)f(list)h(of)f -Ft(shopt)f Fu(options)i(is:)630 5011 y Ft(assoc_expand_once)1110 -5121 y Fu(If)h(set,)i(the)e(shell)h(suppresses)e(m)m(ultiple)i(ev)-5 +4626 y(unless)30 b(an)g Fr(optname)36 b Fu(is)30 b(not)h(a)g(v)-5 +b(alid)30 b(shell)h(option.)630 4754 y(The)f(list)h(of)f +Ft(shopt)f Fu(options)i(is:)630 4902 y Ft(assoc_expand_once)1110 +5011 y Fu(If)h(set,)i(the)e(shell)h(suppresses)e(m)m(ultiple)i(ev)-5 b(aluation)34 b(of)e(asso)s(ciativ)m(e)j(arra)m(y)1110 -5230 y(subscripts)f(during)h(arithmetic)i(expression)f(ev)-5 -b(aluation)37 b(and)e(while)h(exe-)1110 5340 y(cuting)31 -b(builtins)f(that)h(can)f(p)s(erform)f(v)-5 b(ariable)31 -b(assignmen)m(ts.)p eop end +5121 y(subscripts)24 b(during)h(arithmetic)h(expression)g(ev)-5 +b(aluation,)28 b(while)e(executing)1110 5230 y(builtins)c(that)i(can)f +(p)s(erform)f(v)-5 b(ariable)24 b(assignmen)m(ts,)h(and)e(while)g +(executing)1110 5340 y(builtins)30 b(that)h(p)s(erform)e(arra)m(y)i +(dereferencing.)p eop end %%Page: 66 72 TeXDict begin 66 71 bop 150 -116 a Fu(Chapter)30 b(4:)41 b(Shell)30 b(Builtin)h(Commands)2069 b(66)630 299 y Ft(autocd)192 diff --git a/doc/bashref.texi b/doc/bashref.texi index ed633521b..d33cd5710 100644 --- a/doc/bashref.texi +++ b/doc/bashref.texi @@ -5141,8 +5141,9 @@ The list of @code{shopt} options is: @item assoc_expand_once If set, the shell suppresses multiple evaluation of associative array -subscripts during arithmetic expression evaluation and while executing -builtins that can perform variable assignments. +subscripts during arithmetic expression evaluation, while executing +builtins that can perform variable assignments, +and while executing builtins that perform array dereferencing. @item autocd If set, a command name that is the name of a directory is executed as if diff --git a/doc/builtins.0 b/doc/builtins.0 index 176d309f0..76f08b774 100644 --- a/doc/builtins.0 +++ b/doc/builtins.0 @@ -1309,321 +1309,322 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS aassssoocc__eexxppaanndd__oonnccee If set, the shell suppresses multiple evaluation of associative array subscripts during arithmetic expres- - sion evaluation and while executing builtins that can - perform variable assignments. - aauuttooccdd If set, a command name that is the name of a directory - is executed as if it were the argument to the ccdd com- + sion evaluation, while executing builtins that can per- + form variable assignments, and while executing builtins + that perform array dereferencing. + aauuttooccdd If set, a command name that is the name of a directory + is executed as if it were the argument to the ccdd com- mand. This option is only used by interactive shells. ccddaabbllee__vvaarrss - If set, an argument to the ccdd builtin command that is - not a directory is assumed to be the name of a variable + If set, an argument to the ccdd builtin command that is + not a directory is assumed to be the name of a variable whose value is the directory to change to. ccddssppeellll If set, minor errors in the spelling of a directory com- - ponent in a ccdd command will be corrected. The errors + ponent in a ccdd command will be corrected. The errors checked for are transposed characters, a missing charac- - ter, and one character too many. If a correction is - found, the corrected filename is printed, and the com- - mand proceeds. This option is only used by interactive + ter, and one character too many. If a correction is + found, the corrected filename is printed, and the com- + mand proceeds. This option is only used by interactive shells. cchheecckkhhaasshh If set, bbaasshh checks that a command found in the hash ta- - ble exists before trying to execute it. If a hashed - command no longer exists, a normal path search is per- + ble exists before trying to execute it. If a hashed + command no longer exists, a normal path search is per- formed. cchheecckkjjoobbss If set, bbaasshh lists the status of any stopped and running - jobs before exiting an interactive shell. If any jobs + jobs before exiting an interactive shell. If any jobs are running, this causes the exit to be deferred until a - second exit is attempted without an intervening command - (see JJOOBB CCOONNTTRROOLL above). The shell always postpones + second exit is attempted without an intervening command + (see JJOOBB CCOONNTTRROOLL above). The shell always postpones exiting if any jobs are stopped. cchheecckkwwiinnssiizzee - If set, bbaasshh checks the window size after each external - (non-builtin) command and, if necessary, updates the - values of LLIINNEESS and CCOOLLUUMMNNSS. This option is enabled by + If set, bbaasshh checks the window size after each external + (non-builtin) command and, if necessary, updates the + values of LLIINNEESS and CCOOLLUUMMNNSS. This option is enabled by default. - ccmmddhhiisstt If set, bbaasshh attempts to save all lines of a multiple- - line command in the same history entry. This allows - easy re-editing of multi-line commands. This option is - enabled by default, but only has an effect if command + ccmmddhhiisstt If set, bbaasshh attempts to save all lines of a multiple- + line command in the same history entry. This allows + easy re-editing of multi-line commands. This option is + enabled by default, but only has an effect if command history is enabled, as described above under HHIISSTTOORRYY. ccoommppaatt3311 If set, bbaasshh changes its behavior to that of version 3.1 - with respect to quoted arguments to the [[[[ conditional + with respect to quoted arguments to the [[[[ conditional command's ==~~ operator and locale-specific string compar- - ison when using the [[[[ conditional command's << and >> - operators. Bash versions prior to bash-4.1 use ASCII + ison when using the [[[[ conditional command's << and >> + operators. Bash versions prior to bash-4.1 use ASCII collation and _s_t_r_c_m_p(3); bash-4.1 and later use the cur- rent locale's collation sequence and _s_t_r_c_o_l_l(3). ccoommppaatt3322 If set, bbaasshh changes its behavior to that of version 3.2 - with respect to locale-specific string comparison when - using the [[[[ conditional command's << and >> operators - (see previous item) and the effect of interrupting a - command list. Bash versions 3.2 and earlier continue - with the next command in the list after one terminates + with respect to locale-specific string comparison when + using the [[[[ conditional command's << and >> operators + (see previous item) and the effect of interrupting a + command list. Bash versions 3.2 and earlier continue + with the next command in the list after one terminates due to an interrupt. ccoommppaatt4400 If set, bbaasshh changes its behavior to that of version 4.0 - with respect to locale-specific string comparison when - using the [[[[ conditional command's << and >> operators - (see description of ccoommppaatt3311) and the effect of inter- - rupting a command list. Bash versions 4.0 and later - interrupt the list as if the shell received the inter- - rupt; previous versions continue with the next command + with respect to locale-specific string comparison when + using the [[[[ conditional command's << and >> operators + (see description of ccoommppaatt3311) and the effect of inter- + rupting a command list. Bash versions 4.0 and later + interrupt the list as if the shell received the inter- + rupt; previous versions continue with the next command in the list. ccoommppaatt4411 - If set, bbaasshh, when in _p_o_s_i_x _m_o_d_e, treats a single quote - in a double-quoted parameter expansion as a special - character. The single quotes must match (an even num- - ber) and the characters between the single quotes are - considered quoted. This is the behavior of posix mode - through version 4.1. The default bash behavior remains + If set, bbaasshh, when in _p_o_s_i_x _m_o_d_e, treats a single quote + in a double-quoted parameter expansion as a special + character. The single quotes must match (an even num- + ber) and the characters between the single quotes are + considered quoted. This is the behavior of posix mode + through version 4.1. The default bash behavior remains as in previous versions. ccoommppaatt4422 - If set, bbaasshh does not process the replacement string in - the pattern substitution word expansion using quote + If set, bbaasshh does not process the replacement string in + the pattern substitution word expansion using quote removal. ccoommppaatt4433 - If set, bbaasshh does not print a warning message if an - attempt is made to use a quoted compound array assign- - ment as an argument to ddeeccllaarree, makes word expansion - errors non-fatal errors that cause the current command - to fail (the default behavior is to make them fatal + If set, bbaasshh does not print a warning message if an + attempt is made to use a quoted compound array assign- + ment as an argument to ddeeccllaarree, makes word expansion + errors non-fatal errors that cause the current command + to fail (the default behavior is to make them fatal errors that cause the shell to exit), and does not reset - the loop state when a shell function is executed (this - allows bbrreeaakk or ccoonnttiinnuuee in a shell function to affect + the loop state when a shell function is executed (this + allows bbrreeaakk or ccoonnttiinnuuee in a shell function to affect loops in the caller's context). ccoommppaatt4444 - If set, bbaasshh saves the positional parameters to + If set, bbaasshh saves the positional parameters to BASH_ARGV and BASH_ARGC before they are used, regardless of whether or not extended debugging mode is enabled. ccoommpplleettee__ffuullllqquuoottee - If set, bbaasshh quotes all shell metacharacters in file- - names and directory names when performing completion. + If set, bbaasshh quotes all shell metacharacters in file- + names and directory names when performing completion. If not set, bbaasshh removes metacharacters such as the dol- - lar sign from the set of characters that will be quoted - in completed filenames when these metacharacters appear - in shell variable references in words to be completed. - This means that dollar signs in variable names that - expand to directories will not be quoted; however, any - dollar signs appearing in filenames will not be quoted, - either. This is active only when bash is using back- - slashes to quote completed filenames. This variable is - set by default, which is the default bash behavior in + lar sign from the set of characters that will be quoted + in completed filenames when these metacharacters appear + in shell variable references in words to be completed. + This means that dollar signs in variable names that + expand to directories will not be quoted; however, any + dollar signs appearing in filenames will not be quoted, + either. This is active only when bash is using back- + slashes to quote completed filenames. This variable is + set by default, which is the default bash behavior in versions through 4.2. ddiirreexxppaanndd - If set, bbaasshh replaces directory names with the results - of word expansion when performing filename completion. - This changes the contents of the readline editing buf- - fer. If not set, bbaasshh attempts to preserve what the + If set, bbaasshh replaces directory names with the results + of word expansion when performing filename completion. + This changes the contents of the readline editing buf- + fer. If not set, bbaasshh attempts to preserve what the user typed. ddiirrssppeellll - If set, bbaasshh attempts spelling correction on directory - names during word completion if the directory name ini- + If set, bbaasshh attempts spelling correction on directory + names during word completion if the directory name ini- tially supplied does not exist. - ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in - the results of pathname expansion. The filenames ````..'''' - and ````....'''' must always be matched explicitly, even if + ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in + the results of pathname expansion. The filenames ````..'''' + and ````....'''' must always be matched explicitly, even if ddoottgglloobb is set. eexxeeccffaaiill If set, a non-interactive shell will not exit if it can- - not execute the file specified as an argument to the - eexxeecc builtin command. An interactive shell does not + not execute the file specified as an argument to the + eexxeecc builtin command. An interactive shell does not exit if eexxeecc fails. eexxppaanndd__aalliiaasseess - If set, aliases are expanded as described above under + If set, aliases are expanded as described above under AALLIIAASSEESS. This option is enabled by default for interac- tive shells. eexxttddeebbuugg - If set at shell invocation, arrange to execute the - debugger profile before the shell starts, identical to - the ----ddeebbuuggggeerr option. If set after invocation, behav- + If set at shell invocation, arrange to execute the + debugger profile before the shell starts, identical to + the ----ddeebbuuggggeerr option. If set after invocation, behav- ior intended for use by debuggers is enabled: 11.. The --FF option to the ddeeccllaarree builtin displays the source file name and line number corresponding to each function name supplied as an argument. - 22.. If the command run by the DDEEBBUUGG trap returns a - non-zero value, the next command is skipped and + 22.. If the command run by the DDEEBBUUGG trap returns a + non-zero value, the next command is skipped and not executed. - 33.. If the command run by the DDEEBBUUGG trap returns a - value of 2, and the shell is executing in a sub- - routine (a shell function or a shell script exe- - cuted by the .. or ssoouurrccee builtins), the shell + 33.. If the command run by the DDEEBBUUGG trap returns a + value of 2, and the shell is executing in a sub- + routine (a shell function or a shell script exe- + cuted by the .. or ssoouurrccee builtins), the shell simulates a call to rreettuurrnn. - 44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described + 44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described in their descriptions above. - 55.. Function tracing is enabled: command substitu- + 55.. Function tracing is enabled: command substitu- tion, shell functions, and subshells invoked with (( _c_o_m_m_a_n_d )) inherit the DDEEBBUUGG and RREETTUURRNN traps. - 66.. Error tracing is enabled: command substitution, - shell functions, and subshells invoked with (( + 66.. Error tracing is enabled: command substitution, + shell functions, and subshells invoked with (( _c_o_m_m_a_n_d )) inherit the EERRRR trap. eexxttgglloobb If set, the extended pattern matching features described above under PPaatthhnnaammee EExxppaannssiioonn are enabled. eexxttqquuoottee - If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed - within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double + If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed + within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double quotes. This option is enabled by default. ffaaiillgglloobb - If set, patterns which fail to match filenames during + If set, patterns which fail to match filenames during pathname expansion result in an expansion error. ffoorrccee__ffiiggnnoorree - If set, the suffixes specified by the FFIIGGNNOORREE shell - variable cause words to be ignored when performing word + If set, the suffixes specified by the FFIIGGNNOORREE shell + variable cause words to be ignored when performing word completion even if the ignored words are the only possi- ble completions. See SSHHEELLLL VVAARRIIAABBLLEESS above for a - description of FFIIGGNNOORREE. This option is enabled by + description of FFIIGGNNOORREE. This option is enabled by default. gglloobbaasscciiiirraannggeess - If set, range expressions used in pattern matching - bracket expressions (see PPaatttteerrnn MMaattcchhiinngg above) behave - as if in the traditional C locale when performing com- + If set, range expressions used in pattern matching + bracket expressions (see PPaatttteerrnn MMaattcchhiinngg above) behave + as if in the traditional C locale when performing com- parisons. That is, the current locale's collating - sequence is not taken into account, so bb will not col- - late between AA and BB, and upper-case and lower-case + sequence is not taken into account, so bb will not col- + late between AA and BB, and upper-case and lower-case ASCII characters will collate together. gglloobbssttaarr If set, the pattern **** used in a pathname expansion con- - text will match all files and zero or more directories - and subdirectories. If the pattern is followed by a //, + text will match all files and zero or more directories + and subdirectories. If the pattern is followed by a //, only directories and subdirectories match. ggnnuu__eerrrrffmmtt If set, shell error messages are written in the standard GNU error message format. hhiissttaappppeenndd - If set, the history list is appended to the file named - by the value of the HHIISSTTFFIILLEE variable when the shell + If set, the history list is appended to the file named + by the value of the HHIISSTTFFIILLEE variable when the shell exits, rather than overwriting the file. hhiissttrreeeeddiitt - If set, and rreeaaddlliinnee is being used, a user is given the + If set, and rreeaaddlliinnee is being used, a user is given the opportunity to re-edit a failed history substitution. hhiissttvveerriiffyy - If set, and rreeaaddlliinnee is being used, the results of his- - tory substitution are not immediately passed to the - shell parser. Instead, the resulting line is loaded + If set, and rreeaaddlliinnee is being used, the results of his- + tory substitution are not immediately passed to the + shell parser. Instead, the resulting line is loaded into the rreeaaddlliinnee editing buffer, allowing further modi- fication. hhoossttccoommpplleettee If set, and rreeaaddlliinnee is being used, bbaasshh will attempt to - perform hostname completion when a word containing a @@ - is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE + perform hostname completion when a word containing a @@ + is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE above). This is enabled by default. hhuuppoonneexxiitt If set, bbaasshh will send SSIIGGHHUUPP to all jobs when an inter- active login shell exits. iinnhheerriitt__eerrrreexxiitt - If set, command substitution inherits the value of the - eerrrreexxiitt option, instead of unsetting it in the subshell - environment. This option is enabled when _p_o_s_i_x _m_o_d_e is + If set, command substitution inherits the value of the + eerrrreexxiitt option, instead of unsetting it in the subshell + environment. This option is enabled when _p_o_s_i_x _m_o_d_e is enabled. iinntteerraaccttiivvee__ccoommmmeennttss If set, allow a word beginning with ## to cause that word - and all remaining characters on that line to be ignored - in an interactive shell (see CCOOMMMMEENNTTSS above). This + and all remaining characters on that line to be ignored + in an interactive shell (see CCOOMMMMEENNTTSS above). This option is enabled by default. llaassttppiippee - If set, and job control is not active, the shell runs + If set, and job control is not active, the shell runs the last command of a pipeline not executed in the back- ground in the current shell environment. - lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line + lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line commands are saved to the history with embedded newlines rather than using semicolon separators where possible. llooccaallvvaarr__iinnhheerriitt If set, local variables inherit the value and attributes of a variable of the same name that exists at a previous - scope before any new value is assigned. The nameref + scope before any new value is assigned. The nameref attribute is not inherited. llooccaallvvaarr__uunnsseett - If set, calling uunnsseett on local variables in previous - function scopes marks them so subsequent lookups find - them unset until that function returns. This is identi- - cal to the behavior of unsetting local variables at the + If set, calling uunnsseett on local variables in previous + function scopes marks them so subsequent lookups find + them unset until that function returns. This is identi- + cal to the behavior of unsetting local variables at the current function scope. llooggiinn__sshheellll - The shell sets this option if it is started as a login - shell (see IINNVVOOCCAATTIIOONN above). The value may not be + The shell sets this option if it is started as a login + shell (see IINNVVOOCCAATTIIOONN above). The value may not be changed. mmaaiillwwaarrnn - If set, and a file that bbaasshh is checking for mail has - been accessed since the last time it was checked, the - message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis- + If set, and a file that bbaasshh is checking for mail has + been accessed since the last time it was checked, the + message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis- played. nnoo__eemmppttyy__ccmmdd__ccoommpplleettiioonn - If set, and rreeaaddlliinnee is being used, bbaasshh will not + If set, and rreeaaddlliinnee is being used, bbaasshh will not attempt to search the PPAATTHH for possible completions when completion is attempted on an empty line. nnooccaasseegglloobb - If set, bbaasshh matches filenames in a case-insensitive + If set, bbaasshh matches filenames in a case-insensitive fashion when performing pathname expansion (see PPaatthhnnaammee EExxppaannssiioonn above). nnooccaasseemmaattcchh - If set, bbaasshh matches patterns in a case-insensitive + If set, bbaasshh matches patterns in a case-insensitive fashion when performing matching while executing ccaassee or [[[[ conditional commands, when performing pattern substi- - tution word expansions, or when filtering possible com- + tution word expansions, or when filtering possible com- pletions as part of programmable completion. nnuullllgglloobb - If set, bbaasshh allows patterns which match no files (see - PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string, + If set, bbaasshh allows patterns which match no files (see + PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string, rather than themselves. pprrooggccoommpp If set, the programmable completion facilities (see PPrroo-- ggrraammmmaabbllee CCoommpplleettiioonn above) are enabled. This option is enabled by default. pprrooggccoommpp__aalliiaass - If set, and programmable completion is enabled, bbaasshh - treats a command name that doesn't have any completions - as a possible alias and attempts alias expansion. If it - has an alias, bbaasshh attempts programmable completion - using the command word resulting from the expanded + If set, and programmable completion is enabled, bbaasshh + treats a command name that doesn't have any completions + as a possible alias and attempts alias expansion. If it + has an alias, bbaasshh attempts programmable completion + using the command word resulting from the expanded alias. pprroommppttvvaarrss If set, prompt strings undergo parameter expansion, com- - mand substitution, arithmetic expansion, and quote - removal after being expanded as described in PPRROOMMPPTTIINNGG + mand substitution, arithmetic expansion, and quote + removal after being expanded as described in PPRROOMMPPTTIINNGG above. This option is enabled by default. rreessttrriicctteedd__sshheellll - The shell sets this option if it is started in + The shell sets this option if it is started in restricted mode (see RREESSTTRRIICCTTEEDD SSHHEELLLL below). The value - may not be changed. This is not reset when the startup - files are executed, allowing the startup files to dis- + may not be changed. This is not reset when the startup + files are executed, allowing the startup files to dis- cover whether or not a shell is restricted. sshhiifftt__vveerrbboossee - If set, the sshhiifftt builtin prints an error message when + If set, the sshhiifftt builtin prints an error message when the shift count exceeds the number of positional parame- ters. ssoouurrcceeppaatthh If set, the ssoouurrccee (..) builtin uses the value of PPAATTHH to - find the directory containing the file supplied as an + find the directory containing the file supplied as an argument. This option is enabled by default. xxppgg__eecchhoo - If set, the eecchhoo builtin expands backslash-escape + If set, the eecchhoo builtin expands backslash-escape sequences by default. ssuussppeenndd [--ff] - Suspend the execution of this shell until it receives a SSIIGGCCOONNTT + Suspend the execution of this shell until it receives a SSIIGGCCOONNTT signal. A login shell cannot be suspended; the --ff option can be used to override this and force the suspension. The return sta- - tus is 0 unless the shell is a login shell and --ff is not sup- + tus is 0 unless the shell is a login shell and --ff is not sup- plied, or if job control is not enabled. tteesstt _e_x_p_r [[ _e_x_p_r ]] Return a status of 0 (true) or 1 (false) depending on the evalu- ation of the conditional expression _e_x_p_r. Each operator and op- - erand must be a separate argument. Expressions are composed of - the primaries described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. - tteesstt does not accept any options, nor does it accept and ignore + erand must be a separate argument. Expressions are composed of + the primaries described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. + tteesstt does not accept any options, nor does it accept and ignore an argument of ---- as signifying the end of options. - Expressions may be combined using the following operators, + Expressions may be combined using the following operators, listed in decreasing order of precedence. The evaluation - depends on the number of arguments; see below. Operator prece- + depends on the number of arguments; see below. Operator prece- dence is used when there are five or more arguments. !! _e_x_p_r True if _e_x_p_r is false. (( _e_x_p_r )) - Returns the value of _e_x_p_r. This may be used to override + Returns the value of _e_x_p_r. This may be used to override the normal precedence of operators. _e_x_p_r_1 -aa _e_x_p_r_2 True if both _e_x_p_r_1 and _e_x_p_r_2 are true. @@ -1640,120 +1641,120 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS null. 2 arguments If the first argument is !!, the expression is true if and - only if the second argument is null. If the first argu- - ment is one of the unary conditional operators listed - above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is + only if the second argument is null. If the first argu- + ment is one of the unary conditional operators listed + above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is true if the unary test is true. If the first argument is not a valid unary conditional operator, the expression is false. 3 arguments The following conditions are applied in the order listed. - If the second argument is one of the binary conditional + If the second argument is one of the binary conditional operators listed above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the result of the expression is the result of the binary test - using the first and third arguments as operands. The --aa - and --oo operators are considered binary operators when - there are three arguments. If the first argument is !!, - the value is the negation of the two-argument test using + using the first and third arguments as operands. The --aa + and --oo operators are considered binary operators when + there are three arguments. If the first argument is !!, + the value is the negation of the two-argument test using the second and third arguments. If the first argument is exactly (( and the third argument is exactly )), the result - is the one-argument test of the second argument. Other- + is the one-argument test of the second argument. Other- wise, the expression is false. 4 arguments If the first argument is !!, the result is the negation of - the three-argument expression composed of the remaining + the three-argument expression composed of the remaining arguments. Otherwise, the expression is parsed and eval- - uated according to precedence using the rules listed + uated according to precedence using the rules listed above. 5 or more arguments - The expression is parsed and evaluated according to + The expression is parsed and evaluated according to precedence using the rules listed above. - When used with tteesstt or [[, the << and >> operators sort lexico- + When used with tteesstt or [[, the << and >> operators sort lexico- graphically using ASCII ordering. - ttiimmeess Print the accumulated user and system times for the shell and + ttiimmeess Print the accumulated user and system times for the shell and for processes run from the shell. The return status is 0. ttrraapp [--llpp] [[_a_r_g] _s_i_g_s_p_e_c ...] - The command _a_r_g is to be read and executed when the shell - receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a - single _s_i_g_s_p_e_c) or --, each specified signal is reset to its - original disposition (the value it had upon entrance to the - shell). If _a_r_g is the null string the signal specified by each - _s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes. - If _a_r_g is not present and --pp has been supplied, then the trap - commands associated with each _s_i_g_s_p_e_c are displayed. If no - arguments are supplied or if only --pp is given, ttrraapp prints the - list of commands associated with each signal. The --ll option - causes the shell to print a list of signal names and their cor- - responding numbers. Each _s_i_g_s_p_e_c is either a signal name - defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are + The command _a_r_g is to be read and executed when the shell + receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a + single _s_i_g_s_p_e_c) or --, each specified signal is reset to its + original disposition (the value it had upon entrance to the + shell). If _a_r_g is the null string the signal specified by each + _s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes. + If _a_r_g is not present and --pp has been supplied, then the trap + commands associated with each _s_i_g_s_p_e_c are displayed. If no + arguments are supplied or if only --pp is given, ttrraapp prints the + list of commands associated with each signal. The --ll option + causes the shell to print a list of signal names and their cor- + responding numbers. Each _s_i_g_s_p_e_c is either a signal name + defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are case insensitive and the SSIIGG prefix is optional. - If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_r_g is executed on exit - from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is exe- - cuted before every _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command, - _s_e_l_e_c_t command, every arithmetic _f_o_r command, and before the - first command executes in a shell function (see SSHHEELLLL GGRRAAMMMMAARR - above). Refer to the description of the eexxttddeebbuugg option to the + If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_r_g is executed on exit + from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is exe- + cuted before every _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command, + _s_e_l_e_c_t command, every arithmetic _f_o_r command, and before the + first command executes in a shell function (see SSHHEELLLL GGRRAAMMMMAARR + above). Refer to the description of the eexxttddeebbuugg option to the sshhoopptt builtin for details of its effect on the DDEEBBUUGG trap. If a _s_i_g_s_p_e_c is RREETTUURRNN, the command _a_r_g is executed each time a shell function or a script executed with the .. or ssoouurrccee builtins fin- ishes executing. - If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a + If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a pipeline (which may consist of a single simple command), a list, or a compound command returns a non-zero exit status, subject to - the following conditions. The EERRRR trap is not executed if the + the following conditions. The EERRRR trap is not executed if the failed command is part of the command list immediately following - a wwhhiillee or uunnttiill keyword, part of the test in an _i_f statement, + a wwhhiillee or uunnttiill keyword, part of the test in an _i_f statement, part of a command executed in a &&&& or |||| list except the command - following the final &&&& or ||||, any command in a pipeline but the - last, or if the command's return value is being inverted using - !!. These are the same conditions obeyed by the eerrrreexxiitt (--ee) + following the final &&&& or ||||, any command in a pipeline but the + last, or if the command's return value is being inverted using + !!. These are the same conditions obeyed by the eerrrreexxiitt (--ee) option. - Signals ignored upon entry to the shell cannot be trapped or - reset. Trapped signals that are not being ignored are reset to + Signals ignored upon entry to the shell cannot be trapped or + reset. Trapped signals that are not being ignored are reset to their original values in a subshell or subshell environment when - one is created. The return status is false if any _s_i_g_s_p_e_c is + one is created. The return status is false if any _s_i_g_s_p_e_c is invalid; otherwise ttrraapp returns true. ttyyppee [--aaffttppPP] _n_a_m_e [_n_a_m_e ...] - With no options, indicate how each _n_a_m_e would be interpreted if + With no options, indicate how each _n_a_m_e would be interpreted if used as a command name. If the --tt option is used, ttyyppee prints a - string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or - _f_i_l_e if _n_a_m_e is an alias, shell reserved word, function, - builtin, or disk file, respectively. If the _n_a_m_e is not found, - then nothing is printed, and an exit status of false is - returned. If the --pp option is used, ttyyppee either returns the + string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or + _f_i_l_e if _n_a_m_e is an alias, shell reserved word, function, + builtin, or disk file, respectively. If the _n_a_m_e is not found, + then nothing is printed, and an exit status of false is + returned. If the --pp option is used, ttyyppee either returns the name of the disk file that would be executed if _n_a_m_e were speci- fied as a command name, or nothing if ``type -t name'' would not - return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e, + return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e, even if ``type -t name'' would not return _f_i_l_e. If a command is hashed, --pp and --PP print the hashed value, which is not necessar- - ily the file that appears first in PPAATTHH. If the --aa option is - used, ttyyppee prints all of the places that contain an executable + ily the file that appears first in PPAATTHH. If the --aa option is + used, ttyyppee prints all of the places that contain an executable named _n_a_m_e. This includes aliases and functions, if and only if the --pp option is not also used. The table of hashed commands is - not consulted when using --aa. The --ff option suppresses shell + not consulted when using --aa. The --ff option suppresses shell function lookup, as with the ccoommmmaanndd builtin. ttyyppee returns true if all of the arguments are found, false if any are not found. uulliimmiitt [--HHSSaabbccddeeffiikkllmmnnppqqrrssttuuvvxxPPTT [_l_i_m_i_t]] - Provides control over the resources available to the shell and - to processes started by it, on systems that allow such control. + Provides control over the resources available to the shell and + to processes started by it, on systems that allow such control. The --HH and --SS options specify that the hard or soft limit is set - for the given resource. A hard limit cannot be increased by a - non-root user once it is set; a soft limit may be increased up - to the value of the hard limit. If neither --HH nor --SS is speci- + for the given resource. A hard limit cannot be increased by a + non-root user once it is set; a soft limit may be increased up + to the value of the hard limit. If neither --HH nor --SS is speci- fied, both the soft and hard limits are set. The value of _l_i_m_i_t can be a number in the unit specified for the resource or one of the special values hhaarrdd, ssoofftt, or uunnlliimmiitteedd, which stand for the - current hard limit, the current soft limit, and no limit, - respectively. If _l_i_m_i_t is omitted, the current value of the - soft limit of the resource is printed, unless the --HH option is + current hard limit, the current soft limit, and no limit, + respectively. If _l_i_m_i_t is omitted, the current value of the + soft limit of the resource is printed, unless the --HH option is given. When more than one resource is specified, the limit name and unit are printed before the value. Other options are inter- preted as follows: @@ -1762,12 +1763,12 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS --cc The maximum size of core files created --dd The maximum size of a process's data segment --ee The maximum scheduling priority ("nice") - --ff The maximum size of files written by the shell and its + --ff The maximum size of files written by the shell and its children --ii The maximum number of pending signals --kk The maximum number of kqueues that may be allocated --ll The maximum size that may be locked into memory - --mm The maximum resident set size (many systems do not honor + --mm The maximum resident set size (many systems do not honor this limit) --nn The maximum number of open file descriptors (most systems do not allow this value to be set) @@ -1776,53 +1777,53 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS --rr The maximum real-time scheduling priority --ss The maximum stack size --tt The maximum amount of cpu time in seconds - --uu The maximum number of processes available to a single + --uu The maximum number of processes available to a single user - --vv The maximum amount of virtual memory available to the + --vv The maximum amount of virtual memory available to the shell and, on some systems, to its children --xx The maximum number of file locks --PP The maximum number of pseudoterminals --TT The maximum number of threads - If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the - new value of the specified resource. If no option is given, - then --ff is assumed. Values are in 1024-byte increments, except - for --tt, which is in seconds; --pp, which is in units of 512-byte - blocks; --PP, --TT, --bb, --kk, --nn, and --uu, which are unscaled values; + If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the + new value of the specified resource. If no option is given, + then --ff is assumed. Values are in 1024-byte increments, except + for --tt, which is in seconds; --pp, which is in units of 512-byte + blocks; --PP, --TT, --bb, --kk, --nn, and --uu, which are unscaled values; and, when in posix mode, --cc and --ff, which are in 512-byte incre- ments. The return status is 0 unless an invalid option or argu- ment is supplied, or an error occurs while setting a new limit. uummaasskk [--pp] [--SS] [_m_o_d_e] The user file-creation mask is set to _m_o_d_e. If _m_o_d_e begins with - a digit, it is interpreted as an octal number; otherwise it is - interpreted as a symbolic mode mask similar to that accepted by - _c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is - printed. The --SS option causes the mask to be printed in sym- - bolic form; the default output is an octal number. If the --pp + a digit, it is interpreted as an octal number; otherwise it is + interpreted as a symbolic mode mask similar to that accepted by + _c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is + printed. The --SS option causes the mask to be printed in sym- + bolic form; the default output is an octal number. If the --pp option is supplied, and _m_o_d_e is omitted, the output is in a form that may be reused as input. The return status is 0 if the mode - was successfully changed or if no _m_o_d_e argument was supplied, + was successfully changed or if no _m_o_d_e argument was supplied, and false otherwise. uunnaalliiaass [-aa] [_n_a_m_e ...] - Remove each _n_a_m_e from the list of defined aliases. If --aa is - supplied, all alias definitions are removed. The return value + Remove each _n_a_m_e from the list of defined aliases. If --aa is + supplied, all alias definitions are removed. The return value is true unless a supplied _n_a_m_e is not a defined alias. uunnsseett [-ffvv] [-nn] [_n_a_m_e ...] - For each _n_a_m_e, remove the corresponding variable or function. + For each _n_a_m_e, remove the corresponding variable or function. If the --vv option is given, each _n_a_m_e refers to a shell variable, - and that variable is removed. Read-only variables may not be - unset. If --ff is specified, each _n_a_m_e refers to a shell func- - tion, and the function definition is removed. If the --nn option - is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute, - _n_a_m_e will be unset rather than the variable it references. --nn - has no effect if the --ff option is supplied. If no options are - supplied, each _n_a_m_e refers to a variable; if there is no vari- - able by that name, any function with that name is unset. Each - unset variable or function is removed from the environment - passed to subsequent commands. If any of CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANN-- + and that variable is removed. Read-only variables may not be + unset. If --ff is specified, each _n_a_m_e refers to a shell func- + tion, and the function definition is removed. If the --nn option + is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute, + _n_a_m_e will be unset rather than the variable it references. --nn + has no effect if the --ff option is supplied. If no options are + supplied, each _n_a_m_e refers to a variable; if there is no vari- + able by that name, any function with that name is unset. Each + unset variable or function is removed from the environment + passed to subsequent commands. If any of CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANN-- DDOOMM, SSEECCOONNDDSS, LLIINNEENNOO, HHIISSTTCCMMDD, FFUUNNCCNNAAMMEE, GGRROOUUPPSS, or DDIIRRSSTTAACCKK are unset, they lose their special properties, even if they are sub- sequently reset. The exit status is true unless a _n_a_m_e is read- @@ -1830,16 +1831,16 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS wwaaiitt [--ffnn] [_i_d _._._.] Wait for each specified child process and return its termination - status. Each _i_d may be a process ID or a job specification; if - a job spec is given, all processes in that job's pipeline are + status. Each _i_d may be a process ID or a job specification; if + a job spec is given, all processes in that job's pipeline are waited for. If _i_d is not given, all currently active child pro- cesses are waited for, and the return status is zero. If the --nn - option is supplied, wwaaiitt waits for any job to terminate and - returns its exit status. If the --ff option is supplied, and job + option is supplied, wwaaiitt waits for any job to terminate and + returns its exit status. If the --ff option is supplied, and job control is enabled, wwaaiitt forces _i_d to terminate before returning - its status, instead of returning when it changes status. If _i_d - specifies a non-existent process or job, the return status is - 127. Otherwise, the return status is the exit status of the + its status, instead of returning when it changes status. If _i_d + specifies a non-existent process or job, the return status is + 127. Otherwise, the return status is the exit status of the last process or job waited for. SSEEEE AALLSSOO diff --git a/doc/builtins.ps b/doc/builtins.ps index 95fd181e4..c2f8de15d 100644 --- a/doc/builtins.ps +++ b/doc/builtins.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 %%Creator: groff version 1.22.3 -%%CreationDate: Fri Dec 21 09:58:50 2018 +%%CreationDate: Wed Jan 2 09:14:38 2019 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic @@ -2327,10 +2327,12 @@ E(UIL)-.1 E(TINS\(1\))-.92 E(The list of)144 84 Q/F1 10/Times-Bold@0 SF (shopt)2.5 E F0(options is:)2.5 E F1(assoc_expand_once)144 102 Q F0 1.945(If set, the shell suppresses multiple e)184 114 R -.25(va)-.25 G 1.944(luation of associati).25 F 2.244 -.15(ve a)-.25 H 1.944 -(rray subscripts during).15 F .857(arithmetic e)184 126 R .857 -(xpression e)-.15 F -.25(va)-.25 G .857(luation and while e).25 F -.15 -(xe)-.15 G .857(cuting b).15 F .857(uiltins that can perform v)-.2 F -(ariable)-.25 E(assignments.)184 138 Q F1(autocd)144 150 Q F0 .2 +(rray subscripts during).15 F 2.556(arithmetic e)184 126 R 2.556 +(xpression e)-.15 F -.25(va)-.25 G 2.556(luation, while e).25 F -.15(xe) +-.15 G 2.557(cuting b).15 F 2.557(uiltins that can perform v)-.2 F +(ariable)-.25 E(assignments, and while e)184 138 Q -.15(xe)-.15 G +(cuting b).15 E(uiltins that perform array dereferencing.)-.2 E F1 +(autocd)144 150 Q F0 .2 (If set, a command name that is the name of a directory is e)184 150 R -.15(xe)-.15 G .199(cuted as if it were the ar).15 F(gu-)-.18 E (ment to the)184 162 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F diff --git a/doc/rbash.ps b/doc/rbash.ps index cd648b574..885aef042 100644 --- a/doc/rbash.ps +++ b/doc/rbash.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 %%Creator: groff version 1.22.3 -%%CreationDate: Fri Dec 21 09:58:50 2018 +%%CreationDate: Wed Jan 2 09:14:38 2019 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%DocumentSuppliedResources: procset grops 1.22 3 diff --git a/examples/loadables/basename.c b/examples/loadables/basename.c index 8ebdff4f7..0734322d1 100644 --- a/examples/loadables/basename.c +++ b/examples/loadables/basename.c @@ -30,6 +30,7 @@ #include "builtins.h" #include "shell.h" #include "common.h" +#include "bashgetopt.h" int basename_builtin (list) diff --git a/execute_cmd.c b/execute_cmd.c index 8b3c83aa8..75b9804b4 100644 --- a/execute_cmd.c +++ b/execute_cmd.c @@ -4504,6 +4504,9 @@ run_builtin: if (builtin_is_special) special_builtin_failed = 1; /* XXX - take command builtin into account? */ } + else + special_builtin_failed = builtin_is_special && result != EXECUTION_SUCCESS; + /* In POSIX mode, if there are assignment statements preceding a special builtin, they persist after the builtin completes. */ diff --git a/hashlib.c b/hashlib.c index 8adbe221b..f8e3b09a2 100644 --- a/hashlib.c +++ b/hashlib.c @@ -392,6 +392,7 @@ hash_pstats (table, name) HASH_TABLE *table, *ntable; int interrupt_immediately = 0; +int running_trap = 0; int signal_is_trapped (s) @@ -417,6 +418,7 @@ internal_warning (const char *format, ...) { } +int main () { char string[256]; diff --git a/lib/malloc/malloc.c b/lib/malloc/malloc.c index 5621adf41..ae9a55572 100644 --- a/lib/malloc/malloc.c +++ b/lib/malloc/malloc.c @@ -84,6 +84,10 @@ #include #include +#if !defined (botch) +#include +#endif + #if defined (HAVE_MMAP) #include #endif diff --git a/lib/sh/unicode.c b/lib/sh/unicode.c index fe13c4a0b..99c422ab7 100644 --- a/lib/sh/unicode.c +++ b/lib/sh/unicode.c @@ -216,21 +216,21 @@ u32toutf8 (wc, s) int u32toutf16 (c, s) u_bits32_t c; - unsigned short *s; + wchar_t *s; { int l; l = 0; if (c < 0x0d800 || (c >= 0x0e000 && c <= 0x0ffff)) { - s[0] = (unsigned short) (c & 0xFFFF); + s[0] = (wchar_t) (c & 0xFFFF); l = 1; } else if (c >= 0x10000 && c <= 0x010ffff) { c -= 0x010000; - s[0] = (unsigned short)((c >> 10) + 0xd800); - s[1] = (unsigned short)((c & 0x3ff) + 0xdc00); + s[0] = (wchar_t)((c >> 10) + 0xd800); + s[1] = (wchar_t)((c & 0x3ff) + 0xdc00); l = 2; } s[l] = 0; diff --git a/parse.y b/parse.y index a431f2606..3ff87bccc 100644 --- a/parse.y +++ b/parse.y @@ -419,10 +419,7 @@ inputunit: simple_list simple_list_terminator only interesting in non-interactive shells */ global_command = (COMMAND *)NULL; if (last_command_exit_value == 0) -{ -itrace("parser: forcing EX_BADUSAGE; executing_command_builtin = %d", executing_command_builtin); last_command_exit_value = EX_BADUSAGE; /* force error return */ -} handle_eof_input_unit (); if (interactive && parse_and_execute_level == 0) { diff --git a/tests/RUN-ONE-TEST b/tests/RUN-ONE-TEST index 554f3d6ec..58c375b70 100755 --- a/tests/RUN-ONE-TEST +++ b/tests/RUN-ONE-TEST @@ -1,4 +1,4 @@ -BUILD_DIR=/usr/local/build/bash/bash-current +BUILD_DIR=/usr/local/build/chet/bash/bash-current THIS_SH=$BUILD_DIR/bash PATH=$PATH:$BUILD_DIR diff --git a/version.c b/version.c index 922c8d69c..d9280f034 100644 --- a/version.c +++ b/version.c @@ -1,6 +1,6 @@ /* version.c -- distribution and version numbers. */ -/* Copyright (C) 1989-2018 Free Software Foundation, Inc. +/* Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GNU Bash, the Bourne Again SHell. @@ -43,7 +43,7 @@ const char * const release_status = (char *)0; #endif const char * const sccs_version = SCCSVERSION; -const char * const bash_copyright = N_("Copyright (C) 2018 Free Software Foundation, Inc."); +const char * const bash_copyright = N_("Copyright (C) 2019 Free Software Foundation, Inc."); const char * const bash_license = N_("License GPLv3+: GNU GPL version 3 or later \n"); /* If == 31, shell compatible with bash-3.1, == 32 with bash-3.2, and so on */ diff --git a/version2.c b/version2.c index 922c8d69c..d9280f034 100644 --- a/version2.c +++ b/version2.c @@ -1,6 +1,6 @@ /* version.c -- distribution and version numbers. */ -/* Copyright (C) 1989-2018 Free Software Foundation, Inc. +/* Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GNU Bash, the Bourne Again SHell. @@ -43,7 +43,7 @@ const char * const release_status = (char *)0; #endif const char * const sccs_version = SCCSVERSION; -const char * const bash_copyright = N_("Copyright (C) 2018 Free Software Foundation, Inc."); +const char * const bash_copyright = N_("Copyright (C) 2019 Free Software Foundation, Inc."); const char * const bash_license = N_("License GPLv3+: GNU GPL version 3 or later \n"); /* If == 31, shell compatible with bash-3.1, == 32 with bash-3.2, and so on */ -- 2.47.2