mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-08-07 02:32:27 +02:00
commit bash-20180809 snapshot
This commit is contained in:
+120
-68
@@ -270,74 +270,6 @@ argv[1] = <element1 with spaces>
|
||||
argv[2] = <element2 with spaces>
|
||||
argv[1] = <element1 with spaces>
|
||||
argv[2] = <element2 with spaces>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[3] = <aa>
|
||||
argv[4] = <bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[3] = <aa>
|
||||
argv[4] = <bb>
|
||||
argv[1] = <aa+bb>
|
||||
argv[2] = <aa+bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[3] = <aa>
|
||||
argv[4] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa+bb>
|
||||
argv[1] = <xa+bb>
|
||||
argv[1] = <xa+bb>
|
||||
argv[2] = <xa+bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa+bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xabb>
|
||||
argv[1] = <xabb>
|
||||
argv[1] = <xabb>
|
||||
argv[2] = <xabb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xabb>
|
||||
nord!olz
|
||||
|
||||
rdholz
|
||||
@@ -689,3 +621,123 @@ arithmetic:
|
||||
6.declare -A a=([" "]="13" [0]="0" [1]="1" ["\" \""]="11" )
|
||||
7.declare -A a=([" "]="13" [0]="0" [1]="1" ["\" \""]="11" )
|
||||
8.declare -A a=([" "]="13" [0]="0" [1]="1" ["\" \""]="13" )
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[3] = <aa>
|
||||
argv[4] = <bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[3] = <aa>
|
||||
argv[4] = <bb>
|
||||
argv[1] = <aa+bb>
|
||||
argv[2] = <aa+bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[3] = <aa>
|
||||
argv[4] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa+bb>
|
||||
argv[1] = <xa+bb>
|
||||
argv[1] = <xa+bb>
|
||||
argv[2] = <xa+bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa+bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xabb>
|
||||
argv[1] = <xabb>
|
||||
argv[1] = <xabb>
|
||||
argv[2] = <xabb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <xabb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[3] = <aa>
|
||||
argv[4] = <bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[3] = <aa>
|
||||
argv[4] = <bb>
|
||||
argv[1] = <aa+bb>
|
||||
argv[2] = <aa+bb>
|
||||
argv[1] = <aa+bb>
|
||||
argv[2] = <aa+bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[3] = <aa>
|
||||
argv[4] = <bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <aa>
|
||||
argv[2] = <bb>
|
||||
argv[1] = <aa+bb>
|
||||
argv[1] = <a>
|
||||
argv[2] = <b>
|
||||
argv[1] = <a>
|
||||
argv[2] = <b>
|
||||
argv[1] = <a>
|
||||
argv[2] = <b>
|
||||
argv[3] = <a>
|
||||
argv[4] = <b>
|
||||
argv[1] = <a+b>
|
||||
argv[2] = <a+b>
|
||||
argv[1] = <a>
|
||||
argv[2] = <b>
|
||||
argv[3] = <a>
|
||||
argv[4] = <b>
|
||||
argv[1] = <a>
|
||||
argv[2] = <b>
|
||||
argv[1] = <a>
|
||||
argv[2] = <b>
|
||||
argv[1] = <a>
|
||||
argv[2] = <b>
|
||||
argv[1] = <a+b>
|
||||
|
||||
@@ -404,3 +404,4 @@ ${THIS_SH} ./array22.sub
|
||||
${THIS_SH} ./array23.sub
|
||||
${THIS_SH} ./array24.sub
|
||||
${THIS_SH} ./array25.sub
|
||||
${THIS_SH} ./array26.sub
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
# these should produce the same results
|
||||
a=(aa bb)
|
||||
set -- aa bb
|
||||
|
||||
IFS=+
|
||||
|
||||
recho ${a[@]}
|
||||
recho ${a[@]:0}
|
||||
|
||||
recho $@
|
||||
recho ${@:1}
|
||||
|
||||
A=${a[*]} B=${a[*]:0}
|
||||
recho $* ${*:1}
|
||||
recho ${a[*]} ${a[*]:0}
|
||||
recho "$A" "$B"
|
||||
recho $A $B
|
||||
|
||||
unset A B
|
||||
|
||||
recho ${@/a/x}
|
||||
recho ${a[@]/a/x}
|
||||
recho "${@/a/x}"
|
||||
recho "${a[@]/a/x}"
|
||||
|
||||
recho ${*/a/x}
|
||||
recho ${a[*]/a/x}
|
||||
recho "${*/a/x}"
|
||||
recho "${a[*]/a/x}"
|
||||
|
||||
A=${*/a/x}
|
||||
B=${a[*]/a/x}
|
||||
|
||||
recho "$A" "$B"
|
||||
|
||||
unset A B
|
||||
declare -A A
|
||||
A[0]=aa
|
||||
A[1]=bb
|
||||
|
||||
recho ${A[@]/a/x}
|
||||
recho "${A[@]/a/x}"
|
||||
recho ${A[*]/a/x}
|
||||
recho "${A[*]/a/x}"
|
||||
|
||||
unset A
|
||||
IFS=
|
||||
|
||||
recho ${@/a/x}
|
||||
recho ${a[@]/a/x}
|
||||
recho "${@/a/x}"
|
||||
recho "${a[@]/a/x}"
|
||||
|
||||
recho ${*/a/x}
|
||||
recho ${a[*]/a/x}
|
||||
recho "${*/a/x}"
|
||||
recho "${a[*]/a/x}"
|
||||
|
||||
A=${*/a/x}
|
||||
B=${a[*]/a/x}
|
||||
|
||||
recho "$A" "$B"
|
||||
|
||||
unset A B
|
||||
declare -A A
|
||||
A[0]=aa
|
||||
A[1]=bb
|
||||
|
||||
recho ${A[@]/a/x}
|
||||
recho "${A[@]/a/x}"
|
||||
recho ${A[*]/a/x}
|
||||
recho "${A[*]/a/x}"
|
||||
|
||||
unset A
|
||||
|
||||
IFS=+
|
||||
|
||||
recho ${a[@]}
|
||||
recho ${a[@],,}
|
||||
recho "${a[@]}"
|
||||
recho "${a[@],,}"
|
||||
|
||||
A=${a[*]} B=${a[*],,}
|
||||
recho $* ${*,,}
|
||||
recho ${a[*]} ${a[*],,}
|
||||
recho "${a[*]}" "${a[*],,}"
|
||||
recho "$A" "$B"
|
||||
recho $A $B
|
||||
|
||||
unset A B
|
||||
declare -A A
|
||||
A[0]=aa
|
||||
A[1]=bb
|
||||
|
||||
recho ${A[@],,}
|
||||
recho "${A[@],,}"
|
||||
recho ${A[*],,}
|
||||
recho "${A[*],,}"
|
||||
|
||||
unset A
|
||||
|
||||
recho ${a[@]#?}
|
||||
recho ${@#?}
|
||||
|
||||
A=${a[*]#?} B=${a[*]#?}
|
||||
recho ${*#?} ${a[*]#?}
|
||||
recho "$A" "$B"
|
||||
recho $A $B
|
||||
|
||||
unset A B
|
||||
declare -A A
|
||||
A[0]=aa
|
||||
A[1]=bb
|
||||
|
||||
recho ${A[@]#?}
|
||||
recho "${A[@]#?}"
|
||||
recho ${A[*]#?}
|
||||
recho "${A[*]#?}"
|
||||
@@ -113,76 +113,3 @@ recho $@
|
||||
|
||||
IFS="$oIFS"
|
||||
unset a a2 array foo
|
||||
|
||||
# these should produce the same results
|
||||
a=(aa bb)
|
||||
set -- aa bb
|
||||
|
||||
IFS=+
|
||||
|
||||
recho ${a[@]}
|
||||
recho ${a[@]:0}
|
||||
|
||||
recho $@
|
||||
recho ${@:1}
|
||||
|
||||
A=${a[*]} B=${a[*]:0}
|
||||
recho $* ${*:1}
|
||||
recho ${a[*]} ${a[*]:0}
|
||||
recho "$A" "$B"
|
||||
recho $A $B
|
||||
|
||||
unset A B
|
||||
|
||||
recho ${@/a/x}
|
||||
recho ${a[@]/a/x}
|
||||
recho "${@/a/x}"
|
||||
recho "${a[@]/a/x}"
|
||||
|
||||
recho ${*/a/x}
|
||||
recho ${a[*]/a/x}
|
||||
recho "${*/a/x}"
|
||||
recho "${a[*]/a/x}"
|
||||
|
||||
A=${*/a/x}
|
||||
B=${a[*]/a/x}
|
||||
|
||||
recho "$A" "$B"
|
||||
|
||||
unset A B
|
||||
declare -A A
|
||||
A[0]=aa
|
||||
A[1]=bb
|
||||
|
||||
recho ${A[@]/a/x}
|
||||
recho "${A[@]/a/x}"
|
||||
recho ${A[*]/a/x}
|
||||
recho "${A[*]/a/x}"
|
||||
|
||||
unset A
|
||||
IFS=
|
||||
|
||||
recho ${@/a/x}
|
||||
recho ${a[@]/a/x}
|
||||
recho "${@/a/x}"
|
||||
recho "${a[@]/a/x}"
|
||||
|
||||
recho ${*/a/x}
|
||||
recho ${a[*]/a/x}
|
||||
recho "${*/a/x}"
|
||||
recho "${a[*]/a/x}"
|
||||
|
||||
A=${*/a/x}
|
||||
B=${a[*]/a/x}
|
||||
|
||||
recho "$A" "$B"
|
||||
|
||||
unset A B
|
||||
declare -A A
|
||||
A[0]=aa
|
||||
A[1]=bb
|
||||
|
||||
recho ${A[@]/a/x}
|
||||
recho "${A[@]/a/x}"
|
||||
recho ${A[*]/a/x}
|
||||
recho "${A[*]/a/x}"
|
||||
|
||||
@@ -469,3 +469,17 @@ ref=Y
|
||||
declare -- ref="Y"
|
||||
./nameref20.sub: line 61: declare: var: not found
|
||||
ref=Y
|
||||
declare -n ref="var"
|
||||
declare -A var=([2]="" )
|
||||
declare -n ref="var"
|
||||
declare -A var=([2]="" )
|
||||
declare -n ref="var"
|
||||
declare -a var=([2]="")
|
||||
declare -n ref="var"
|
||||
declare -a var=([2]="")
|
||||
declare -n ref="var"
|
||||
declare -ai var=([1]="0")
|
||||
declare -n ref="var"
|
||||
declare -ai var=([1]="0")
|
||||
declare -n ref="var"
|
||||
declare -- var="1"
|
||||
|
||||
@@ -67,3 +67,5 @@ unset -v var
|
||||
f
|
||||
|
||||
unset -n ref
|
||||
unset -f f
|
||||
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
# issues with local variables and local namerefs post-bash-4.4
|
||||
|
||||
f()
|
||||
{
|
||||
local -n ref=var
|
||||
local -A ref=([1]=)
|
||||
# declare -p ref var
|
||||
ref=([2]=)
|
||||
declare -p ref var
|
||||
}
|
||||
|
||||
unset ref var
|
||||
f
|
||||
|
||||
unset ref; var=0
|
||||
f
|
||||
|
||||
unset var
|
||||
unset -f f
|
||||
|
||||
f()
|
||||
{
|
||||
local -n ref=var
|
||||
local -a ref=([1]=)
|
||||
ref=([2]=)
|
||||
declare -p ref var
|
||||
}
|
||||
|
||||
unset ref var
|
||||
f
|
||||
|
||||
unset ref; var=0
|
||||
f
|
||||
|
||||
unset var
|
||||
unset -f f
|
||||
|
||||
f() { local -n ref=var; local -i ref=([1]=); declare -p ref var; }
|
||||
|
||||
unset var
|
||||
f
|
||||
|
||||
var=0
|
||||
f
|
||||
|
||||
unset var
|
||||
unset -f f
|
||||
|
||||
f() { local -n ref=var; local ref=1; declare -p ref var; }
|
||||
|
||||
var=0
|
||||
f
|
||||
|
||||
unset var
|
||||
unset -f f
|
||||
|
||||
+2
-3
@@ -27,7 +27,7 @@ shopt -u extglob
|
||||
shopt -s extquote
|
||||
shopt -u failglob
|
||||
shopt -s force_fignore
|
||||
shopt -u globasciiranges
|
||||
shopt -s globasciiranges
|
||||
shopt -u globstar
|
||||
shopt -u gnu_errfmt
|
||||
shopt -u histappend
|
||||
@@ -63,6 +63,7 @@ shopt -s complete_fullquote
|
||||
shopt -s expand_aliases
|
||||
shopt -s extquote
|
||||
shopt -s force_fignore
|
||||
shopt -s globasciiranges
|
||||
shopt -s hostcomplete
|
||||
shopt -s interactive_comments
|
||||
shopt -s progcomp
|
||||
@@ -89,7 +90,6 @@ shopt -u execfail
|
||||
shopt -u extdebug
|
||||
shopt -u extglob
|
||||
shopt -u failglob
|
||||
shopt -u globasciiranges
|
||||
shopt -u globstar
|
||||
shopt -u gnu_errfmt
|
||||
shopt -u histappend
|
||||
@@ -130,7 +130,6 @@ execfail off
|
||||
extdebug off
|
||||
extglob off
|
||||
failglob off
|
||||
globasciiranges off
|
||||
globstar off
|
||||
gnu_errfmt off
|
||||
histappend off
|
||||
|
||||
Reference in New Issue
Block a user