scripting:bashchanges

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
scripting:bashchanges [2020/06/28 05:50]
thebonsai 5.1-alpha
scripting:bashchanges [2020/06/28 06:51] (current)
thebonsai [Table]
Line 100: Line 100:
 | ''​test''/''​%%[%%''/''​%%[[%%'':​ ''​-v'' ​                                      | 4.2-alpha ​                | check if a variable is set                                                           | | ''​test''/''​%%[%%''/''​%%[[%%'':​ ''​-v'' ​                                      | 4.2-alpha ​                | check if a variable is set                                                           |
 | ''​test''/''​%%[%%''/''​%%[[%%'':​ ''​-v'' ​                                      | 4.2-alpha ​                | support array syntax to check for elements ​                                          | | ''​test''/''​%%[%%''/''​%%[[%%'':​ ''​-v'' ​                                      | 4.2-alpha ​                | support array syntax to check for elements ​                                          |
 +| ''​test''/''​%%[%%''/''​%%[[%%'':​ ''​-N''​ accepts nanoseconds ​                  | 5.1-alpha ​                ​| ​                                                                                     |
 +| ''​test''/''​%%[%%''/''​%%[[%%'':​ ''​-v''​ accepts positional parameters ​        | 5.1-alpha ​                ​| ​                                                                                     |
  
 ==== Other builtins and keywords ==== ==== Other builtins and keywords ====
Line 160: Line 162:
 | ''​trap'' ​                    | ''​-p''​ option prints signals with SIG_DFL/​SIG_IGN on shell start (POSIX mode)                                                                     | 5.1-alpha ​                ​| ​                                                                                                     | | ''​trap'' ​                    | ''​-p''​ option prints signals with SIG_DFL/​SIG_IGN on shell start (POSIX mode)                                                                     | 5.1-alpha ​                ​| ​                                                                                                     |
 | ''​unset'' ​                   | automatically tries to unset a function if the given name is an invalid variable name                                                             | 5.1-aplha ​                ​| ​                                                                                                     | | ''​unset'' ​                   | automatically tries to unset a function if the given name is an invalid variable name                                                             | 5.1-aplha ​                ​| ​                                                                                                     |
-| ''​test'' ​                    | conditional expresseions using ''​-N''​ now accept nanoseconds ​                                                                                     | 5.1-alpha ​                ​| ​                                                                                                     | 
 | ''​wait'' ​                    | option ''​-n''​ now accepts a list of jobs                                                                                                          | 5.1-alpha ​                ​| ​                                                                                                     | | ''​wait'' ​                    | option ''​-n''​ now accepts a list of jobs                                                                                                          | 5.1-alpha ​                ​| ​                                                                                                     |
 | ''​wait'' ​                    | new option ''​-p NAME''​ to store PID/JobID (useful when waiting for a list of jobs)                                                                | 5.1-alpha ​                ​| ​                                                                                                     | | ''​wait'' ​                    | new option ''​-p NAME''​ to store PID/JobID (useful when waiting for a list of jobs)                                                                | 5.1-alpha ​                ​| ​                                                                                                     |
-| ''​test'' ​                    | ''​-v NAME''​ (test if variable has been assigned) accepts positional parameters ​                                                                   | 5.1-alpha ​                ​| ​                                                                                                     | 
 | ''​local'' ​                   | new option ''​-p''​ to print local variables in the current scope                                                                                   | 5.1-alpha ​                ​| ​                                                                                                     | | ''​local'' ​                   | new option ''​-p''​ to print local variables in the current scope                                                                                   | 5.1-alpha ​                ​| ​                                                                                                     |
 | ''​ulimit'' ​                  | new option ''​-R''​ to get/set ''​RLIMIT_RTTIME''​ resource ​                                                                                          | 5.1-alpha ​                ​| ​                                                                                                     | | ''​ulimit'' ​                  | new option ''​-R''​ to get/set ''​RLIMIT_RTTIME''​ resource ​                                                                                          | 5.1-alpha ​                ​| ​                                                                                                     |
Line 169: Line 169:
  
 ===== Builtin variables ===== ===== Builtin variables =====
-^ Feature or change description ​                          ^ Appeared in Bash version ​ ^ See also                                                                          +^ Feature or change description ​                          ^ Appeared in Bash version ​ ^ See also                                                                            
-| ''​HISTCMD'' ​                                            | 1.14.0 ​                   | interactive usage                                                                 ​+| ''​HISTCMD'' ​                                            | 1.14.0 ​                   | interactive usage                                                                   ​
-| ''​PS1'',​ ''​PS2'',​ ''​PATH'',​ and ''​IFS''​ are unsettable ​ | 2.0                       ​| ​                                                                                  ​+| ''​PS1'',​ ''​PS2'',​ ''​PATH'',​ and ''​IFS''​ are unsettable ​ | 2.0                       ​| ​                                                                                    ​
-| ''​DIRSTACK''​ array variable ​                            | 2.0                       ​| ​                                                                                  ​+| ''​DIRSTACK''​ array variable ​                            | 2.0                       ​| ​                                                                                    ​
-| ''​PIPESTATUS''​ array variable ​                          | 2.0                       ​| ​                                                                                  ​+| ''​PIPESTATUS''​ array variable ​                          | 2.0                       ​| ​                                                                                    ​
-| ''​BASH_VERSINFO''​ array variable ​                       | 2.0                       ​| ​                                                                                  ​+| ''​BASH_VERSINFO''​ array variable ​                       | 2.0                       ​| ​                                                                                    ​
-| ''​HOSTNAME'' ​                                           | 2.0                       ​| ​                                                                                  ​+| ''​HOSTNAME'' ​                                           | 2.0                       ​| ​                                                                                    ​
-| ''​SHELLOPTS'' ​                                          | 2.0                       ​| ​                                                                                  ​+| ''​SHELLOPTS'' ​                                          | 2.0                       ​| ​                                                                                    ​
-| ''​MACHTYPE'' ​                                           | 2.0                       ​| ​                                                                                  ​+| ''​MACHTYPE'' ​                                           | 2.0                       ​| ​                                                                                    ​
-| ''​GLOBIGNORE'' ​                                         | 2.0                       ​| ​                                                                                  ​+| ''​GLOBIGNORE'' ​                                         | 2.0                       ​| ​                                                                                    ​
-| ''​HISTIGNORE'' ​                                         | 2.0                       ​| ​                                                                                  ​+| ''​HISTIGNORE'' ​                                         | 2.0                       ​| ​                                                                                    ​
-| respect ''​LC_ALL'' ​                                     | 2.0                       ​| ​                                                                                  ​+| respect ''​LC_ALL'' ​                                     | 2.0                       ​| ​                                                                                    ​
-| respect ''​LC_MESSAGES'' ​                                | 2.0                       ​| ​                                                                                  ​+| respect ''​LC_MESSAGES'' ​                                | 2.0                       ​| ​                                                                                    ​
-| respect ''​LC_CTYPE'' ​                                   | 2.0                       ​| ​                                                                                  ​+| respect ''​LC_CTYPE'' ​                                   | 2.0                       ​| ​                                                                                    ​
-| respect ''​LC_COLLATE'' ​                                 | 2.0                       ​| ​                                                                                  ​+| respect ''​LC_COLLATE'' ​                                 | 2.0                       ​| ​                                                                                    ​
-| respect ''​LANG'' ​                                       | 2.0                       ​| ​                                                                                  ​+| respect ''​LANG'' ​                                       | 2.0                       ​| ​                                                                                    ​
-| ''​GROUPS''​ array variable ​                              | 2.01                      |                                                                                   ​+| ''​GROUPS''​ array variable ​                              | 2.01                      |                                                                                     ​
-| ''​GROUPS''​ unsettable/​takes (discarded) assignments ​    | 2.04                      |                                                                                   ​+| ''​GROUPS''​ unsettable/​takes (discarded) assignments ​    | 2.04                      |                                                                                     ​
-| ''​FUNCNAME'' ​                                           | 2.04                      |                                                                                   ​+| ''​FUNCNAME'' ​                                           | 2.04                      |                                                                                     ​
-| respect ''​LC_NUMERIC'' ​                                 | 2.04                      |                                                                                   ​+| respect ''​LC_NUMERIC'' ​                                 | 2.04                      |                                                                                     ​
-| ''​TMOUT'' ​                                              | 2.05b                     ​| ​                                                                                  ​+| ''​TMOUT'' ​                                              | 2.05b                     ​| ​                                                                                    ​
-| ''​BASH_REMATCH'' ​                                       | 3.0                       | together with regex support in ''​%%[[...]]%%'' ​                                   +| ''​BASH_REMATCH'' ​                                       | 3.0                       | together with regex support in ''​%%[[...]]%%'' ​                                     
-| ''​BASH_ARGC'' ​                                          | 3.0                       | debugger support ​                                                                 +| ''​BASH_ARGC'' ​                                          | 3.0                       | debugger support ​                                                                   
-| ''​BASH_ARGV'' ​                                          | 3.0                       | debugger support ​                                                                 +| ''​BASH_ARGV'' ​                                          | 3.0                       | debugger support ​                                                                   
-| ''​BASH_SOURCE'' ​                                        | 3.0                       | debugger support ​                                                                 +| ''​BASH_SOURCE'' ​                                        | 3.0                       | debugger support ​                                                                   
-| ''​BASH_LINENO'' ​                                        | 3.0                       | debugger support ​                                                                 +| ''​BASH_LINENO'' ​                                        | 3.0                       | debugger support ​                                                                   
-| ''​BASH_SUBSHELL'' ​                                      | 3.0                       | debugger support ​                                                                 +| ''​BASH_SUBSHELL'' ​                                      | 3.0                       | debugger support ​                                                                   
-| ''​BASH_EXECUTION_STRING'' ​                              | 3.0                       | debugger support ​                                                                 +| ''​BASH_EXECUTION_STRING'' ​                              | 3.0                       | debugger support ​                                                                   
-| ''​BASH_COMMAND'' ​                                       | 3.0                       | debugger support ​                                                                 +| ''​BASH_COMMAND'' ​                                       | 3.0                       | debugger support ​                                                                   
-| ''​HISTTIMEFORMAT'' ​                                     | 3.0                       ​| ​                                                                                  ​+| ''​HISTTIMEFORMAT'' ​                                     | 3.0                       ​| ​                                                                                    ​
-| ''​COMP_WORDBREAKS'' ​                                    | 3.0                       ​| ​                                                                                  ​+| ''​COMP_WORDBREAKS'' ​                                    | 3.0                       ​| ​                                                                                    ​
-| respect ''​LC_TIME'' ​                                    | 3.1                       ​| ​                                                                                  ​+| respect ''​LC_TIME'' ​                                    | 3.1                       ​| ​                                                                                    ​
-| ''​BASHPID'' ​                                            | 4.0-alpha ​                | Added to mksh R41.                                                                +| ''​BASHPID'' ​                                            | 4.0-alpha ​                | Added to mksh R41.                                                                  
-| ''​PROMPT_DIRTRIM'' ​                                     | 4.0                       ​| ​                                                                                  ​+| ''​PROMPT_DIRTRIM'' ​                                     | 4.0                       ​| ​                                                                                    ​
-| ''​BASH_XTRACEFD'' ​                                      | 4.1-alpha ​                ​| ​                                                                                  ​+| ''​BASH_XTRACEFD'' ​                                      | 4.1-alpha ​                ​| ​                                                                                    ​
-| ''​BASHOPTS'' ​                                           | 4.1-alpha ​                ​| ​                                                                                  ​+| ''​BASHOPTS'' ​                                           | 4.1-alpha ​                ​| ​                                                                                    ​
-| ''​FUNCNEST'' ​                                           | 4.2-alpha ​                ​| ​                                                                                  ​+| ''​FUNCNEST'' ​                                           | 4.2-alpha ​                ​| ​                                                                                    ​
-| ''​HISTSIZE'' ​                                           | 4.3-alpha ​                | can be set to negative values for unlimited history length ​                       +| ''​HISTSIZE'' ​                                           | 4.3-alpha ​                | can be set to negative values for unlimited history length ​                         
-| ''​HISTFILESIZE'' ​                                       | 4.3-alpha ​                | can be set to negative values for unlimit history file size                       ​+| ''​HISTFILESIZE'' ​                                       | 4.3-alpha ​                | can be set to negative values for unlimit history file size                         ​
-| ''​CHILD_MAX'' ​                                          | 4.3-alpha ​                | max. number of exit status of children the shell remembers ​                       +| ''​CHILD_MAX'' ​                                          | 4.3-alpha ​                | max. number of exit status of children the shell remembers ​                         
-| ''​BASH_COMPAT'' ​                                        | 4.3-alpha ​                | set shell compatiblity levels ​                                                    ​+| ''​BASH_COMPAT'' ​                                        | 4.3-alpha ​                | set shell compatiblity levels ​                                                      ​
-| ''​EPOCHSECONDS'' ​                                       | 5.0-alpha ​                | expands to the time in seconds since Unix epoch                                   ​+| ''​EPOCHSECONDS'' ​                                       | 5.0-alpha ​                | expands to the time in seconds since Unix epoch                                     ​
-| ''​EPOCHREALTIME'' ​                                      | 5.0-alpha ​                | expands to the time in seconds since Unix epoch with microsecond granularity ​     +| ''​EPOCHREALTIME'' ​                                      | 5.0-alpha ​                | expands to the time in seconds since Unix epoch with microsecond granularity ​       
-| ''​BASH_ARGV0'' ​                                         | 5.0-alpha ​                | get/set ''​$0'' ​                                                                   +| ''​BASH_ARGV0'' ​                                         | 5.0-alpha ​                | get/set ''​$0'' ​                                                                     
-| ''​PATH'' ​                                               | 5.0-alpha ​                | Possibility to set a static path for use in a restricted shell (at compile time)  +| ''​PATH'' ​                                               | 5.0-alpha ​                | Possibility to set a static path for use in a restricted shell (at compile time)    
-| ''​HISTSIZE'' ​                                           | 5.0-beta ​                 | Default can now be set at runtime ​                                                ​|+| ''​HISTSIZE'' ​                                           | 5.0-beta ​                 | Default can now be set at runtime ​                                                  | 
 +| ''​SRANDOM'' ​                                            | 5.1-alpha ​                | New random generator for 32bit numbers (using various methods in the backend) ​      | 
 +| ''​ARGV0'' ​                                              | 5.1-alpha ​                | Respected when set in initial shell environment,​ then initially used to set ''​$0'' ​ | 
 +| ''​BASH_REMATCH'' ​                                       | 5.1-alpha ​                | Not readonly anymore ​                                                               | 
 +| ''​PROMPT_COMMANDS'' ​                                    | 5.1-alpha ​                | New array variable. List of commands to be executed like ''​PROMPT_COMMAND'' ​        | 
 +| ''​SECONDS'' ​                                            | 5.1-alpha ​                | Assignment using arithmetic expressions (is nominally an integer variabnle) ​        | 
 +| ''​RANDOM'' ​                                             | 5.1-alpha ​                | Assignment using arithmetic expressions (is nominally an integer variabnle) ​        | 
 +| ''​LINENO'' ​                                             | 5.1-alpha ​                | Not an integer variabe ​                                                             ​|
  
 ===== Quoting, expansions, substitutions and related ===== ===== Quoting, expansions, substitutions and related =====
Line 249: Line 256:
 | ''​%%${PARAMETER:​OFFSET:​LENGTH}%%'':​ Negative ''​LENGTH''​ values are used as offset from the end of the string ​ | 4.2-alpha ​                | Substrings only for Bash and ksh93. Works also for argument expansions in zsh. ksh93 can use ''​${arr[n..-m]}''​. ​ | | ''​%%${PARAMETER:​OFFSET:​LENGTH}%%'':​ Negative ''​LENGTH''​ values are used as offset from the end of the string ​ | 4.2-alpha ​                | Substrings only for Bash and ksh93. Works also for argument expansions in zsh. ksh93 can use ''​${arr[n..-m]}''​. ​ |
 | Word expansions like ''​${foo##​bar}''​ understand indirect variable references ​                                 | 4.3-beta ​                 |                                                                                                                  | | Word expansions like ''​${foo##​bar}''​ understand indirect variable references ​                                 | 4.3-beta ​                 |                                                                                                                  |
 +| Transofrmations ​                                                                                              | 4.4                       ​| ​                                                                                                                 |
 +| Process substitution now works in POSIX mode                                                                  | 5.1-alpha ​                ​| ​                                                                                                                 |
 +| New transformations:​ ''​U'',​ ''​u'',​ ''​L'' ​                                                                     | 5.1-alpha ​                | Case-transformation ​                                                                                             |
 +| New transformation:​ ''​K'' ​                                                                                    | 5.1-alpha ​                | Display associative arrays as key/value pairs                                                                    |
  
  
  • scripting/bashchanges.1593323449.txt
  • Last modified: 2020/06/28 05:50
  • by thebonsai