使用 /dev/tty 写入 stderr?



我想只使用/dev/tty 写入 stderr。如果我直接写信给/dev/tty(带 tee),似乎它会在 stdout 上打印出来。这是对的吗?如何指定要打印到 stderr?

目前 bash 中的行看起来像

echo "foo" >&2 | tee /dev/tty | logger -it "my_script"

如果我们将您的命令分开,并在 # 之后的每个命令的结果

echo "foo" >&2 # echo "foo" and redirect to fd 2 (/dev/sdterr)
| #pipe stdout to  
tee /dev/tty #both send stdout to file /dev/tty, which is terminal file that can output both stdout and stderr depending on what you pass to it (so you probably want /dev/stdout/ or /dev/stderr directly instead) and pass it along to the next pipe
| #pipe stdout to
logger -it "my_script"

所以这取决于你想做什么(在上面的foo被重定向到stdrr,没有任何东西被管道传输到tee)

如果你想打印foo到stdrr并将stdout传递给你的脚本,你可以这样做

echo "foo" | tee /dev/stderr | yourscirpt

然后tee将打印到 stderr,foo 将作为 stdout 通过管道传输到您的脚本。

相关内容

  • 没有找到相关文章

最新更新