]>
Commit | Line | Data |
---|---|---|
a0c0a00f CR |
1 | # make sure redirections do not have access to the temporary environment, even |
2 | # in subshells and command substitutions | |
3 | ||
4 | a=1 | |
5 | a=4 b=7 ss=4 echo $a | |
6 | ||
d233b485 | 7 | # use grep to avoid differences due to different system error messages |
a0c0a00f | 8 | a=42 |
d233b485 CR |
9 | a=2 echo foo 2>&1 >&$a | { grep -q '\$a: Bad file' || echo 'redir11 bad 1'; } |
10 | a=2 echo foo 2>&1 >&$(echo $a) | { grep -q 'Bad file' || echo 'redir11 bad 2'; } | |
a0c0a00f CR |
11 | |
12 | foo() | |
13 | { | |
14 | local -i a | |
15 | local v=0 x=1 | |
16 | a+=3 | |
17 | echo $a | |
18 | } | |
19 | ||
20 | a=4 b=7 ss=4 declare -i ss | |
21 | a=4 b=7 foo | |
22 | echo after: $a | |
23 | ||
24 | unset a | |
d233b485 CR |
25 | a=4 echo foo 2>&1 >&$(foo) | { grep -q 'Bad file' || echo 'redir11 bad 3'; } |
26 | a=1 echo foo 2>&1 >&$(foo) | { grep -q 'Bad file' || echo 'redir11 bad 4'; } | |
27 | a=1 echo foo 2>&1 >&$(a=4 foo) | { grep -q 'Bad file' || echo 'redir11 bad 5'; } | |
28 | echo foo 2>&1 >&$(a=4 foo) | { grep -q 'Bad file' || echo 'redir11 bad 6'; } | |
a0c0a00f CR |
29 | |
30 | a=42 | |
d233b485 CR |
31 | a=2 echo foo 2>&1 >&$a | { grep -q 'Bad file' || echo 'redir11 bad 7'; } |
32 | a=2 echo foo 2>&1 >&$(echo $a) | { grep -q 'Bad file' || echo 'redir11 bad 8'; } | |
a0c0a00f CR |
33 | |
34 | unset -f foo | |
35 | foo() | |
36 | { | |
37 | local -i a | |
38 | local v=0 x=1 | |
39 | a+=3 | |
40 | echo $a >&$(ss= declare -i ss) | |
41 | } | |
42 | ||
43 | a=4 b=7 foo | |
44 | echo after: $a | |
45 | ||
46 | unset a | |
47 | typeset -i a | |
48 | a=4 eval echo $(echo a+=3) | |
49 | a=2 | |
50 | a=9 echo foo >&$(echo $a) | |
51 | a=2 | |
52 | a=9 eval echo foo >&$(echo $a) | |
53 | a=2 | |
d233b485 | 54 | a=9 eval echo foo '2>&1 >&$(echo $a)' | { grep -q 'Bad file' || echo 'redir11 bad 9'; } |