Cryptic Bash命令...声称记录整个脚本的执行

时间:2011-07-20 00:14:17

标签: bash unix scripting

我有一些代码递给了很久以前去过另一个部门的人。它声称将所有内容记录到$ MBL位置,但是,它没有;它在$ MBL位置创建一个空文件: - (

exec > >(tee ${MBL}) 2>&1

我可以告诉它需要stderr并将其发送到stdout;我可以告诉tee应该将结果输出到stdout和$ MBL。但是,我不理解exec > >()语法。

阅读bash(1)手册页表明叉子正在发生......

1 个答案:

答案 0 :(得分:2)

这里发生了两件事:exec只有重定向会重定向shell自己的文件描述符,而>(command)bash中的zsh语法会创建一个管道并替换为/dev/fd/*引用其输入。

如上所述,这看起来像它声称要执行的操作..但是脚本中可能还有其他重定向,或者如果它在不支持>(command)的shell中运行,那么它将会吐出错误,没有任何用处。