我正在尝试从ant执行任务执行bash脚本。
<target name="test" unless="${is.windows}">
<chmod file="./abc.sh" perm="a+x"/>
<exec dir="./" spawn="false" executable="bash" newenvironment="false">
<arg line="abc.sh ${some-argument}" />
</exec>
</target>
bash脚本有shebang #!/bin/bash.
当我运行目标时,它在构建生产代码的Jenkins机器上给出了以下输出。它在我本地的CentOS机器上运行良好。大多数行都是空的。在第19行,它有{(左花括号)-
[exec] abc.sh: line 2:
[exec] : command not foundabc.sh: line 7:
[exec] : command not foundabc.sh: line 8:
[exec] : command not foundabc.sh: line 12:
[exec] : command not foundabc.sh: line 14:
[exec] : command not foundabc.sh: line 17:
[exec] : command not foundabc.sh: line 19: syntax error near unexpected token `{
[exec] 'abc.sh: line 19: `{
[exec] '
[exec] Result: 2
问题在于行结束。将svn eol属性设置为native修复了这个问题。就像在我们的Jenkins服务器上一样,每次构建时都会检查代码,在Windows上编辑的bash脚本会创建与centOS不兼容的行结尾。