Line | |
---|
1 | # weird redirections that caused trouble and were fixed in post-3.0 bash
|
---|
2 | stuff()
|
---|
3 | {
|
---|
4 | c=1
|
---|
5 | ( sleep 5 < /dev/null >/dev/null 2>&1 & ) &
|
---|
6 | }
|
---|
7 |
|
---|
8 | exec 3>&1
|
---|
9 | eval `
|
---|
10 | exec 4>&1 >&3 3>&-
|
---|
11 | {
|
---|
12 | stuff 4>&-
|
---|
13 | echo "c=$c" >&4
|
---|
14 | }`
|
---|
15 | echo c1 is $c
|
---|
16 |
|
---|
17 | unset -f stuff
|
---|
18 |
|
---|
19 | stuff()
|
---|
20 | {
|
---|
21 | c=2
|
---|
22 | ( sleep 5 < /dev/null >/dev/null 2>&1 & )
|
---|
23 | }
|
---|
24 |
|
---|
25 | exec 3>&1
|
---|
26 | eval `
|
---|
27 | exec 4>&1 >&3 3>&-
|
---|
28 | {
|
---|
29 | stuff 4>&-
|
---|
30 | echo "c=$c" >&4
|
---|
31 | }`
|
---|
32 | echo c2 is $c
|
---|
33 |
|
---|
34 | unset -f stuff
|
---|
35 |
|
---|
36 | stuff()
|
---|
37 | {
|
---|
38 | c=3
|
---|
39 | { sleep 5 < /dev/null >/dev/null 2>&1 & } &
|
---|
40 | }
|
---|
41 |
|
---|
42 | exec 3>&1
|
---|
43 | eval `
|
---|
44 | exec 4>&1 >&3 3>&-
|
---|
45 | {
|
---|
46 | stuff 4>&-
|
---|
47 | echo "c=$c" >&4
|
---|
48 | }`
|
---|
49 | echo c3 is $c
|
---|
50 |
|
---|
51 | unset -f stuff
|
---|
52 |
|
---|
53 | stuff()
|
---|
54 | {
|
---|
55 | c=4
|
---|
56 | { sleep 5 < /dev/null >/dev/null 2>&1 & }
|
---|
57 | }
|
---|
58 |
|
---|
59 | exec 3>&1
|
---|
60 | eval `
|
---|
61 | exec 4>&1 >&3 3>&-
|
---|
62 | {
|
---|
63 | stuff 4>&-
|
---|
64 | echo "c=$c" >&4
|
---|
65 | }`
|
---|
66 | echo c4 is $c
|
---|
67 |
|
---|
68 | # fixed in bash-3.1
|
---|
69 | echo 'exec <&3' | ${THIS_SH} 3<&0
|
---|
Note:
See
TracBrowser
for help on using the repository browser.