mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-08-09 19:50:32 +02:00
commit bash-20180309 snapshot
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
# can we unset the nameref attribute on variables with values that reference
|
||||
# unset variables?
|
||||
|
||||
unset bar
|
||||
declare -n foo="bar"
|
||||
declare -p foo
|
||||
|
||||
declare +n foo
|
||||
declare -p foo bar
|
||||
|
||||
declare -n foo
|
||||
declare -p foo
|
||||
|
||||
# let's try removing the nameref attribute -- other attributes and assignments
|
||||
# apply to the nameref target
|
||||
|
||||
declare +n -i foo=7+4
|
||||
declare -p foo bar
|
||||
|
||||
unset foo bar
|
||||
|
||||
# but if the nameref variable doesn't have a value, the attributes apply to
|
||||
# the nameref variable itself. thanks ksh93
|
||||
|
||||
declare -n foo6
|
||||
declare -xi foo6
|
||||
declare -p foo6
|
||||
|
||||
# and when we remove the nameref attribute, the other attributes remain
|
||||
|
||||
declare +n foo6
|
||||
declare -p foo6
|
||||
|
||||
unset foo6
|
||||
|
||||
# make sure these cases continue to work
|
||||
|
||||
# nameref referencing an existing, set variable
|
||||
declare -n foo=bar
|
||||
bar='Hello World!'
|
||||
declare -p foo bar
|
||||
declare +n foo
|
||||
declare -p foo bar
|
||||
unset foo bar
|
||||
|
||||
# nameref referencing an existing, unset variable
|
||||
declare -n foo=bar
|
||||
declare bar
|
||||
declare -p foo bar
|
||||
declare +n foo
|
||||
declare -p foo bar
|
||||
Reference in New Issue
Block a user