summaryrefslogtreecommitdiffstats
path: root/tests/nameref11.sub
blob: ea14c0db7a3bdded865033263e63df71a610f0c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#   This program is free software: you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
r=/; declare -n r ; unset r
declare -n r=/ ; unset -n r
declare -n r; r=/ ; unset -n r
declare -n r; declare r=/ ; unset -n r
declare -n r; for r in /; do :; done ; unset -n r
declare -n r; select r in /; do :; done <<< 1; echo x; echo $r ; unset -n r
declare -n r; ((r=0)) ; unset -n r
((r=0)); declare -n r ; unset -n r
r=/ declare -n r ; unset -n r
f() { declare -n r; }; r=/ f ; unset r
f() { echo $r; }; declare -n r; r=/ f ; unset -n r
declare -n r; : ${r:=/} ; unset -n r
declare -n r; exec {r}>/dev/null ; unset -n r
declare -n r; coproc r { :; }; echo $r ; unset r ; wait
declare -r RO=x; r=$RO; declare -n r; x=y; declare -n RO; RO=z; declare -p RO; echo "$RO"
s=/; declare -n r=s; declare -n s; echo $r ; unset -n r ; unset -n s
declare -n r=s; declare -n s; s=/ ; unset -n r; unset -n s
declare -n r; getopts x r -h ; unset r; unset -n r
declare -n r; mapfile r < /dev/null ; declare -p r; unset r ; unset -n r
mapfile r < /dev/null; declare -n r ; unset r ; unset -n r
declare -n r; printf -v r / ; unset -n r

declare -n r; r="" ; unset -n r
declare -n r="" ; unset -n r
declare -n r; : ${r=} ; unset -n r
declare -n r; printf -v r '' ; unset -n r
r=""; declare -n r ; unset -n r
export r

# coproc tests, since coproc sets and unsets variables
declare -r ROVAR=42
declare -p ROVAR; coproc ROVAR { :; }; wait; declare -p ROVAR

echo ${@:0}; coproc @ { :; }; wait ; echo ${@:0}

declare -n ref=x; coproc ref { :; }; wait ; declare -p ref
unset -n ref ; unset ref

declare -r RO RO_PID; coproc RO { :; }; declare -p RO_PID; wait; declare -p RO RO_PID

declare -r RO2=a; declare -n ref_PID=RO2; coproc ref { :; }; wait; declare -p RO2

unset x y
set -- one two three

y=2
typeset -n x=y
echo ${x}

unset -n x

typeset -n y
echo $y

unset -n y

typeset -n y
y=2
echo ${y}

declare -n foo=bar
echo ${!foo[2]}
echo ${!bar}