mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-08-07 02:32:27 +02:00
commit bash-20180720 snapshot
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
||||
BUILD_DIR=/usr/local/build/chet/bash/bash-current
|
||||
BUILD_DIR=/usr/local/build/bash/bash-current
|
||||
THIS_SH=$BUILD_DIR/bash
|
||||
PATH=$PATH:$BUILD_DIR
|
||||
|
||||
|
||||
@@ -220,3 +220,12 @@ declare -A a=(["80's"]="Depeche Mode" )
|
||||
1+5
|
||||
declare -A a=(["\$(date >&2)"]="5" )
|
||||
declare -A myarray=([foo]="bleh" ["foo[bar"]="bleh" )
|
||||
./assoc10.sub: line 1: declare: a: cannot convert indexed to associative array
|
||||
f: declare -a a
|
||||
./assoc10.sub: line 4: declare: a: cannot convert associative to indexed array
|
||||
f: declare -A a
|
||||
|
||||
f: declare -a a
|
||||
main: declare -- a="7"
|
||||
f: declare -A a
|
||||
main: declare -- a="42"
|
||||
|
||||
@@ -217,3 +217,5 @@ ${THIS_SH} ./assoc8.sub
|
||||
|
||||
# new shopt option to prevent multiple expansion of assoc array subscripts
|
||||
${THIS_SH} ./assoc9.sub
|
||||
|
||||
${THIS_SH} ./assoc10.sub
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
f() { declare -a a; declare -A a; echo -n "$FUNCNAME: " ; declare -p a; }
|
||||
f
|
||||
|
||||
f() { declare -A a; declare -a a; echo -n "$FUNCNAME: " ; declare -p a; }
|
||||
f
|
||||
|
||||
echo
|
||||
|
||||
f() { declare -a a; echo -n "$FUNCNAME: " ; declare -p a; }
|
||||
a=7
|
||||
f
|
||||
echo -n 'main: '; declare -p a
|
||||
|
||||
f() { declare -A a; echo -n "$FUNCNAME: " ; declare -p a; }
|
||||
a=42
|
||||
f
|
||||
echo -n 'main: '; declare -p a
|
||||
@@ -440,3 +440,24 @@ declare -n foo="bar"
|
||||
declare -- bar
|
||||
declare -- foo="bar"
|
||||
declare -- bar
|
||||
declare -a v=([0]="Y")
|
||||
r: <Y>
|
||||
v: <Y>
|
||||
declare -n ref="var"
|
||||
declare -a var=([0]="X")
|
||||
declare -n ref="var"
|
||||
declare -a var=([0]="X")
|
||||
declare -n ref="var"
|
||||
./nameref20.sub: line 23: declare: var: not found
|
||||
outside:
|
||||
declare -a foo=([0]="X")
|
||||
declare -n ref="var"
|
||||
declare -a var=([0]="X")
|
||||
outside:
|
||||
./nameref20.sub: line 38: declare: ref: not found
|
||||
./nameref20.sub: line 38: declare: var: not found
|
||||
declare -n ref="var"
|
||||
declare -- var="X"
|
||||
outside:
|
||||
./nameref20.sub: line 45: declare: ref: not found
|
||||
./nameref20.sub: line 45: declare: var: not found
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
# a collection of cases in bug reports after bash-5.0-alpha was released
|
||||
|
||||
declare -n r=v[0]
|
||||
v=(X); r=Y
|
||||
declare -p ${!v*}
|
||||
printf "%s: <%s>\n" "r" "$r" "v" "$v"
|
||||
|
||||
unset -n r
|
||||
unset -v v
|
||||
|
||||
declare -n ref=var; declare -a ref
|
||||
ref=(X)
|
||||
declare -p ref var
|
||||
|
||||
unset -n ref
|
||||
unset -v var
|
||||
|
||||
f() { declare -n ref=var; declare ref=(X); declare -p ref var; };
|
||||
f
|
||||
|
||||
unset -f f
|
||||
|
||||
f() { declare -n ref=var; declare -g ref=(X); declare -p ref var; };
|
||||
|
||||
declare -n ref=foo
|
||||
f
|
||||
echo outside:
|
||||
declare -p foo
|
||||
|
||||
unset -n ref
|
||||
unset -v foo
|
||||
unset -f f
|
||||
|
||||
f() { declare -n ref=var; declare -a ref; ref=(X); declare -p ref var; }
|
||||
|
||||
f
|
||||
echo outside:
|
||||
declare -p ref var
|
||||
unset -f f
|
||||
|
||||
f() { declare -n ref=var; declare ref; ref=X; declare -p ref var; }
|
||||
|
||||
f
|
||||
echo outside:
|
||||
declare -p ref var
|
||||
|
||||
unset -f f
|
||||
@@ -86,3 +86,37 @@ test'string
|
||||
a'b'c
|
||||
foo b c baz
|
||||
foo 'bar baz
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
=====
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
=====
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
=====
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
argv[1] = <>
|
||||
|
||||
@@ -121,3 +121,4 @@ echo "${foo:-string \\}"
|
||||
echo ${foo:-string \\\}}
|
||||
|
||||
${THIS_SH} ./quote1.sub
|
||||
${THIS_SH} ./quote2.sub
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
x=x
|
||||
e=
|
||||
|
||||
recho ${x:+""}
|
||||
recho ${x:+ ""}
|
||||
recho ${x:+"" }
|
||||
recho ${x:+"$e"}
|
||||
recho ${x:+ "$e"}
|
||||
recho ${x:+"$e""$e"""}
|
||||
recho ${x:+"$e""$e"""}
|
||||
recho ${x:+"$e" "$e"""}
|
||||
recho ${x:+"$e""$e" ""}
|
||||
recho ${x:+ "$e""$e"""}
|
||||
|
||||
echo =====
|
||||
recho ${x:+''}
|
||||
recho ${x:+ ''}
|
||||
recho ${x:+'' }
|
||||
recho ${x:+'' ''}
|
||||
|
||||
recho ${x:+$e''}
|
||||
recho ${x:+''$e}
|
||||
|
||||
recho ${x:+''$e $e''}
|
||||
|
||||
echo =====
|
||||
recho ${x:+"$(:)"}
|
||||
recho ${x:+ "$(:)"}
|
||||
recho ${x:+"$(:)""$(:)"""}
|
||||
recho ${x:+"$(:)""$(:)"""}
|
||||
recho ${x:+"$(:)" "$(:)"""}
|
||||
recho ${x:+"$(:)""$(:)" ""}
|
||||
recho ${x:+ "$(:)""$(:)"""}
|
||||
|
||||
echo =====
|
||||
recho ${x:+"`:`"}
|
||||
recho ${x:+ "`:`"}
|
||||
recho ${x:+"`:`""`:`"""}
|
||||
recho ${x:+"`:`""`:`"""}
|
||||
recho ${x:+"`:`" "`:`"""}
|
||||
recho ${x:+"`:`""`:`" ""}
|
||||
recho ${x:+ "`:`""`:`"""}
|
||||
@@ -152,6 +152,14 @@ outside: declare -x var="global"
|
||||
foo=<unset> environment foo=
|
||||
foo=foo environment foo=foo
|
||||
foo=foo environment foo=foo
|
||||
./varenv13.sub: line 3: `var[0]': not a valid identifier
|
||||
./varenv13.sub: line 3: `var[@]': not a valid identifier
|
||||
./varenv13.sub: line 1: declare: var: not found
|
||||
./varenv13.sub: line 12: var[@]: bad array subscript
|
||||
declare -A var=([0]="X" )
|
||||
help
|
||||
./varenv13.sub: line 21: `var[0]': not a valid identifier
|
||||
1
|
||||
a=z
|
||||
a=b
|
||||
a=z
|
||||
|
||||
@@ -234,5 +234,8 @@ ${THIS_SH} ./varenv11.sub
|
||||
# temporary environment variable propagation and scoping in posix mode
|
||||
${THIS_SH} ./varenv12.sub
|
||||
|
||||
# temporary environment and invalid shell indentifier names
|
||||
${THIS_SH} ./varenv13.sub
|
||||
|
||||
# make sure variable scoping is done right
|
||||
tt() { typeset a=b;echo a=$a; };a=z;echo a=$a;tt;echo a=$a
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
f() { declare -p ${!var*} | grep ^var; declare -p var ; }
|
||||
|
||||
var[0]=X var[@]=Y f
|
||||
|
||||
unset -f f
|
||||
unset -v var
|
||||
|
||||
typeset -A var
|
||||
|
||||
f() { declare -p ${!var*}; }
|
||||
|
||||
var[0]=X var[@]=Y
|
||||
f
|
||||
|
||||
: ${THIS_SH:=./bash}
|
||||
env 'v[0]=help' ${THIS_SH} -c 'printenv "v[0]"'
|
||||
|
||||
unset -v var
|
||||
|
||||
f() { test -v 'var[0]'; echo $?; }
|
||||
var[0]=X f
|
||||
|
||||
unset -v var
|
||||
Reference in New Issue
Block a user