diff options
author | Chet Ramey <chet.ramey@case.edu> | 2018-03-12 08:10:29 -0400 |
---|---|---|
committer | Chet Ramey <chet.ramey@case.edu> | 2018-03-12 08:10:29 -0400 |
commit | bf5b8103d466fdbc3bfcdaa5e21a0d0c0dce7cba (patch) | |
tree | ad1db06594d079d37833262ccbd5afc70bbb0e46 /tests/nameref19.sub | |
parent | 2e66dc02d681b94bc3fc5f3504dbd79b33326c77 (diff) | |
download | bash-bf5b8103d466fdbc3bfcdaa5e21a0d0c0dce7cba.tar.gz |
commit bash-20180309 snapshot
Diffstat (limited to 'tests/nameref19.sub')
-rw-r--r-- | tests/nameref19.sub | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/nameref19.sub b/tests/nameref19.sub new file mode 100644 index 00000000..d46c003f --- /dev/null +++ b/tests/nameref19.sub @@ -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 |