1 | echo " a " | (read x; echo "$x.")
|
---|
2 |
|
---|
3 | echo " a b " | ( read x y ; echo -"$x"-"$y"- )
|
---|
4 | echo " a b\ " | ( read x y ; echo -"$x"-"$y"- )
|
---|
5 | echo " a b " | ( read x ; echo -"$x"- )
|
---|
6 | echo " a b\ " | ( read x ; echo -"$x"- )
|
---|
7 |
|
---|
8 | echo " a b\ " | ( read -r x y ; echo -"$x"-"$y"- )
|
---|
9 | echo " a b\ " | ( read -r x ; echo -"$x"- )
|
---|
10 |
|
---|
11 | echo "\ a b\ " | ( read -r x y ; echo -"$x"-"$y"- )
|
---|
12 | echo "\ a b\ " | ( read -r x ; echo -"$x"- )
|
---|
13 | echo " \ a b\ " | ( read -r x y ; echo -"$x"-"$y"- )
|
---|
14 | echo " \ a b\ " | ( read -r x ; echo -"$x"- )
|
---|
15 |
|
---|
16 | # make sure that CTLESC and CTLNUL are passed through correctly
|
---|
17 | echo $'\001' | ( read var ; recho "$var" )
|
---|
18 | echo $'\001' | ( read ; recho "$REPLY" )
|
---|
19 |
|
---|
20 | echo $'\177' | ( read var ; recho "$var" )
|
---|
21 | echo $'\177' | ( read ; recho "$REPLY" )
|
---|
22 |
|
---|
23 | # make sure a backslash-quoted \\n still disappears from the input when
|
---|
24 | # we're not reading in `raw' mode, and no stray CTLESC chars are left in
|
---|
25 | # the input stream
|
---|
26 | echo $'ab\\\ncd' | ( read ; recho "$REPLY" )
|
---|
27 |
|
---|
28 | echo "A B " > /tmp/IN
|
---|
29 | unset x y z
|
---|
30 | read x y z < /tmp/IN
|
---|
31 | echo 1: "x[$x] y[$y] z[$z]"
|
---|
32 | echo 1a: ${z-z not set}
|
---|
33 | read x < /tmp/IN
|
---|
34 | echo 2: "x[$x]"
|
---|
35 | rm /tmp/IN
|
---|
36 |
|
---|
37 | # this is where the bash `read' behavior with respect to $REPLY differs
|
---|
38 | # from ksh93
|
---|
39 | echo "A B " > /tmp/IN
|
---|
40 |
|
---|
41 | read < /tmp/IN
|
---|
42 | echo "[$REPLY]"
|
---|
43 |
|
---|
44 | rm /tmp/IN
|
---|
45 |
|
---|
46 | echo " A B " > /tmp/IN
|
---|
47 |
|
---|
48 | read < /tmp/IN
|
---|
49 | echo "[$REPLY]"
|
---|
50 |
|
---|
51 | rm /tmp/IN
|
---|
52 |
|
---|
53 | # make sure that read with more variables than words sets the extra
|
---|
54 | # variables to the empty string
|
---|
55 |
|
---|
56 | bvar=bvar
|
---|
57 | cvar=cvar
|
---|
58 | echo aa > /tmp/IN
|
---|
59 | read avar bvar cvar < /tmp/IN
|
---|
60 | echo =="$avar"==
|
---|
61 | echo =="$bvar"==
|
---|
62 | echo =="$cvar"==
|
---|
63 |
|
---|
64 | rm /tmp/IN
|
---|
65 |
|
---|
66 | # test behavior of read with various settings of IFS
|
---|
67 |
|
---|
68 | echo " foo" | { IFS= read line; recho "$line"; }
|
---|
69 |
|
---|
70 | echo " foo" | { IFS= ; read line; recho "$line"; }
|
---|
71 |
|
---|
72 | echo " foo" | { unset IFS ; read line; recho "$line"; }
|
---|
73 |
|
---|
74 | echo " foo" | { IFS=$'\n' ; read line; recho "$line"; }
|
---|
75 |
|
---|
76 | echo " foo" | { IFS=$' \n' ; read line; recho "$line"; }
|
---|
77 |
|
---|
78 | echo " foo" | { IFS=$' \t\n' ; read line; recho "$line"; }
|
---|
79 |
|
---|
80 | echo " foo" | { IFS=$':' ; read line; recho "$line"; }
|
---|
81 |
|
---|
82 | # test read -d delim behavior
|
---|
83 | ${THIS_SH} ./read1.sub
|
---|
84 |
|
---|
85 | # test read -t timeout behavior
|
---|
86 | ${THIS_SH} ./read2.sub
|
---|
87 |
|
---|
88 | # test read -n nchars behavior
|
---|
89 | ${THIS_SH} ./read3.sub
|
---|
90 |
|
---|
91 | # test read -u fd behavior
|
---|
92 | ${THIS_SH} ./read4.sub
|
---|
93 |
|
---|
94 | # test behavior when IFS is not the default -- bug through bash-2.05b
|
---|
95 | ${THIS_SH} ./read5.sub
|
---|