fd2 - redirect from/to file descriptor 2
fd2 [-e] [-f file] [--] command
[arg ...]
Since the Version 6 (V6) UNIX shell provides no way to redirect the diagnostic
output, fd2 makes this possible by executing the specified
command with the given arguments and redirecting file descriptor 2
(standard error) to file descriptor 1 (standard output) by default.
The options are as follows:
- -e
- Causes all conventional output from command to be redirected to the
standard error as diagnostic output.
- -f file
- Causes all diagnostic output from command to be redirected to
file, which is created if it does not exist. If it already exists,
all diagnostic output is appended to the end of file.
- --
- Causes fd2 to stop further option processing, forcing it to treat
all following arguments as command [arg ...] .
If fd2 detects an error, it prints an appropriate diagnostic and exits
with a non-zero status. Otherwise, the exit status is that of the executed
command.
- EXECSHELL
- If set to a non-empty string, the value of this variable is taken as the
path name of the shell which is invoked to execute the specified command
when it does not begin with the proper magic number or a `#!shell'
sequence.
- PATH
- If set to a non-empty string, the value of this variable is taken as the
sequence of directories which is used to search for the specified
command.
The examples below which refer to `/tmp/$$' assume that this directory exists
and is writable by the user. The following command line:
fd2 -e echo progname: Error message
causes all conventional output from echo to be redirected
to the standard error as diagnostic output. The following command line:
fd2 make foo >/tmp/$$/foo.outerr
causes all conventional and diagnostic output from make to
be redirected to the file `/tmp/$$/foo.outerr', which is first created by
the shell. In contrast:
fd2 -f /tmp/$$/foo.err make foo >/tmp/$$/foo.out
causes all conventional output to be redirected to the file
`/tmp/$$/foo.out', which is created by the shell. All diagnostic output is
redirected to the file `/tmp/$$/foo.err', which is created by fd2 if
it does not already exist.
etsh(1), tsh(1)
Etsh home page: https://etsh.nl/
Jeffrey Allen Neitzel <jan@etsh.nl> wrote this implementation of
the fd2 command and maintains it as fd2(1).
See either the LICENSE file which is distributed with etsh or
https://etsh.nl/license/ for full details.