我在Windows 7上运行Jenkins服务器(v 2.138)。我还安装了cygwin。 cygwin路径位于Windows路径中,因此Jenkins作业可以调用cygwin可执行文件。
我的问题是:为什么在Build操作中,当我设置“ Execute shell”操作时,生成的调用(由构建控制台输出确认)类似于:
sh -xe C:\Windows\TEMP\jenkins8280072687577604153.sh
我了解根据作业配置中输入的内容生成的临时脚本。我不明白的是传递给sh的“ -xe”参数。
据我所见,这些选项似乎可以打印内部命令输出。类似于在Windows中打开ON?但是,这有污染我们的构建日志的不利影响。
例如:
职位配置:
echo X > a.txt
echo X > b.txt
echo X > c.txt
grep X $( find -name "*.txt" )
结果日志:
+ echo X
+ echo X
+ echo X
++ find -name '*.txt'
+ grep X ./a.txt ./b.txt ./c.txt
./a.txt:X
./b.txt:X
./c.txt:X
如果可能,我只想得到:
./a.txt:X
./b.txt:X
./c.txt:X
在我的机器上,我得到:
$ sh --version
GNU bash, version 4.4.12(3)-release (x86_64-unknown-cygwin)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
因此,我查看了bash手册页,但是找不到对-x或-e选项的任何引用。
您对我如何告诉Jenkins直接调用脚本有什么建议吗?
sh C:\Windows\TEMP\jenkins8280072687577604153.sh
或者,如果不可能的话,我该如何在工作中覆盖这些设置,以仅打印相关的控制台输出,而不打印任何中间内容。
谢谢!