blob: 4678ac6955a06273bd0223d92331440c5a82f3dd (
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
# process substitution constructs that have caused problems in the past
. ./test-glue-functions
eval cat <(echo test1)
eval "echo foo;cat" <(echo test2)
unset f
f=<(echo test3); cat "$f"
unset f
eval f=<(echo test4) "; cat \$f"
unset f
FN=$TMPDIR/bashtest-procsub-$$
cat >"$FN" <<EOF
echo "test 12" | wc -c | _cut_leading_spaces
cat "\$1"
EOF
source "$FN" <(echo test5)
rm -f "$FN"
unset FN
cat <( echo test6 ) <( echo test7 )
cat <( echo test8 ; sleep 2; echo test8a ) <( echo test9 )
# Zev Weiss 11/7/2012
fn() { cat | cat "$1"; }
fn <(:) < /dev/null
unset -f fn
f1(){
cat $1
date >/dev/null
}
f2(){
date >/dev/null
cat $1
}
cat <(echo hi)
f1 <(echo bye)
f2 <(echo l8r)
unset -f f1 f2
# set up conditions for test
ulimit -n 256
bug()
{
c=$(ulimit -n)
let c+=100
while let c--
do
while read -ru3 x
do
echo -n :
done 3< <(echo x)
done
echo
}
bug
unset -f bug
count_lines()
{
wc -l < $1
wc -l < $1
wc -l < $1
true | wc -l < $1
wc -l < $1
}
echo intern
count_lines <(date) | _cut_leading_spaces
unset -f count_lines
echo extern
FN=$TMPDIR/bashtest-$$
cat >$FN <<EOF
wc -l < \$1
wc -l < \$1
wc -l < \$1
true | wc -l < \$1
wc -l < \$1
EOF
${THIS_SH} -c "source $FN <(date)" | _cut_leading_spaces
rm -f $FN
moo() { ls -l "$1" >/dev/null; ls -l "$1" >/dev/null; }; moo >(true)
moo() { ls -al "$1" >/dev/null; (true); ls -al "$1" >/dev/null; }; moo >(true)
unset -f moo
${THIS_SH} ./procsub1.sub
|