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