将ant脚本中exec元素的输出指向日志文件

时间:2016-03-30 12:33:28

标签: bash shell ant

我正在从ant文件执行shell脚本。我想在日志文件'buillog-perform.txt'中捕获shell脚本的stdoutput。 下面是我的代码摘录。我的完整版很好。但是这两个shell脚本都没有被执行,也没有在buillog-perform.txt文件中捕获日志。

有人可以帮我吗?如果任何shell脚本到此日志文件,如何收集所有输出和错误?

注意:我想并行执行此目标,因此使用spawn属性。

<target name="perform"
        description="This target for the perform.">     
    <exec dir="." executable="/bin/sh" spawn="true" output="buillog-perform.txt">
            <arg line="-c './abc.sh -c ${arg1}'" />
    </exec>
</target>

1 个答案:

答案 0 :(得分:0)

我建议您使用以下解决方案之一:

1)修改你的代码:

<arg line="-c './abc.sh -c ${arg1}' > stdout.txt 2> stderr.txt" />

2)在bash脚本的开头添加以下行:

#!/bin/bash
exec &>> logfile.txt
…

请注意,>>只会写>。此外,您可以使用> outANDerr.txt 2>&1将所有输出放在同一个文件中。

有关详细信息,请查看此处:http://wiki.bash-hackers.org/syntax/redirection