我有一些代码递给了很久以前去过另一个部门的人。它声称将所有内容记录到$ MBL位置,但是,它没有;它在$ MBL位置创建一个空文件: - (
exec > >(tee ${MBL}) 2>&1
我可以告诉它需要stderr并将其发送到stdout;我可以告诉tee应该将结果输出到stdout和$ MBL。但是,我不理解exec > >()
语法。
阅读bash(1)手册页表明叉子正在发生......
答案 0 :(得分:2)
这里发生了两件事:exec
只有重定向会重定向shell自己的文件描述符,而>(command)
和bash
中的zsh
语法会创建一个管道并替换为/dev/fd/*
引用其输入。
如上所述,这看起来像它声称要执行的操作..但是脚本中可能还有其他重定向,或者如果它在不支持>(command)
的shell中运行,那么它将会吐出错误,没有任何用处。