脚本调用另一个脚本,stdout / stderr重定向

时间:2017-01-25 16:50:54

标签: unix io-redirection

问题

Have a multi_exec.pl that shall handle timed-out execution of command provided.
And we call this multi_exec.pl at various places in our legacy applciation.

Sample call :
$grab = `multi_exec.pl -1 'bcp_cmd-1' 'bcp_cmd-2' ... 'bcp_cmd-n'`

希望了解如何使用STDOUT [ERR]重定向

来实现以下目标
  1. 捕获终端上各个BCP命令的bcp STDOUT [ERR]
  2. 虽然需要从multi_exec.pl
  3. 捕获STDERR上的失败消息
  4. multi_exec.pl的STDOUT需要转到/ dev / null(不想捕获STDOUT )

1 个答案:

答案 0 :(得分:0)

  • 虽然需要从multi_exec.pl
  • 捕获STDERR上的失败消息

没有什么特别需要做的 - 父脚本的STDERR以及各个命令默认会转到终端

  • multi_exec.pl的STDOUT需要转到/ dev / null(不想捕获STDOUT)
  • 捕获终端上各个BCP命令的bcp STDOUT [ERR]

这些是相互冲突的要求,因为父脚本的STDOUT以及各个bcp命令默认会在终端上结束。没有办法将其中一个分成两部分发送到/ dev / null。您可以修改multi_exec.pl,以便将其自己的输出写入文件(如果已指定)。如果没有指定文件,它根本不应该向stdout写入任何内容。因此,确保multi_exec.pl的STDOUT始终来自bcp命令。