init version.
[bush.git] / tests / 3.cli / redir / redir4.sub
bloba4829856097d0ab43886a36814bf6c2a80ea99b0
1 #   This program is free software: you can redistribute it and/or modify
2 #   it under the terms of the GNU General Public License as published by
3 #   the Free Software Foundation, either version 3 of the License, or
4 #   (at your option) any later version.
6 #   This program is distributed in the hope that it will be useful,
7 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
8 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9 #   GNU General Public License for more details.
11 #   You should have received a copy of the GNU General Public License
12 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
14 minus=-
16 # standard input
17 fd=0
19 exec 3<&$fd
21 read line <&3
22 echo from stdin: $line
24 # close fd 3
25 exec 3<&${minus}
27 # should give `bad fd', but exact error messages vary
28 # read line <&3
30 # standard output
31 fd=1
33 exec 4>&$fd
35 echo to stdout >&4
37 exec 4>&$minus
39 # should give `bad fd', but exact error messages vary
40 # echo to stdout >&4
42 unset fd
44 # these are ambiguous redirects
45 exec 3<&$fd
46 exec 4>&$fd
48 exec 3>&1 4>&2
50 exec >&${TMPDIR}/err-and-out
51 echo to stdout
52 echo to stderr >&2
54 exec 1>&3 2>&4
55 echo err-and-out:
56 cat ${TMPDIR}/err-and-out
58 rm ${TMPDIR}/err-and-out
60 fd=${TMPDIR}/err-and-out
61 exec >&$fd
62 echo to stdout
63 echo to stderr >&2
65 exec 1>&3 2>&4
66 echo err-and-out:
67 cat ${TMPDIR}/err-and-out
69 rm ${TMPDIR}/err-and-out