将stderr重定向到终端并以bash文件

时间:2017-09-06 06:58:53

标签: bash redirect

我这里有一个特殊的案例,可以总结如下:

我希望将整个错误/标准输出消息重定向到我的脚本中的文件,但是还有一个特定的行,我想重定向到终端并将其重定向到该文件。

这是代码:

exec &>test.log
echo "Check if this line is going to test.log"
echo "This should go to stderr" >> /dev/stderr

现在最后一行应该转到stderr和test.log。

这可以用bash以某种方式实现吗?

1 个答案:

答案 0 :(得分:1)

是的,tee命令允许您将输出定向到一个或多个文件,以及stdout。

正如您在评论中指出的那样,由于exec命令,这本身不起作用。

这应该做你想要的:

List<Page> nPages = database.QueryAsync<Page>("SELECT * FROM pages WHERE pageisstartpage=?", true);

我通过从here正确设置原始执行官,并将其与tee结合,获得了有关恢复stderr的方法的信息。