我的jenkins服务器存在以相反顺序运行shell命令的问题。 我指定了要运行的命令
例如,
$nohup scp -i .ssh/blah -o StrictHostKeyChecking=no foo.txt tomcat@foo.coo.com:/tmp/FOO.txt &> /dev/null
$nohup ssh -t -t -n -i .ssh/blah -o StrictHostKeyChecking=no tomcat@foo.coo.com '/home/tomcat/bin/update.sh /tmp/FOO.txt.war'
而不是jenkins输出控制台会显示:
当我将两个命令合并为一个&&时,也会出现同样的问题。 它发生在jenkins的所有工作上
我目前正在tomcat6服务器上运行jenkins 1.469
任何帮助将不胜感激!
编辑:
我正在将这些命令作为每个作业的批处理任务运行。问题似乎不是詹金斯,因为这运行正确
[workspace] $ /bin/sh -xe /tmp/tomcat6-tomcat6-tmp/hudson8724999678434432030.sh
+ echo 1
1
+ echo 2
2
+ echo 3
3
+ echo 4
4
答案 0 :(得分:1)
使用&>
重定向stdout和stderr是bash shell的一个特性。如果你想使用特定于bash的功能,你需要让Jenkins知道应该使用bash执行构建步骤。
这可以通过两种方式完成:
1)更改Jenkins全局配置中的默认shell或
2)构建步骤的第一行必须以#!/bin/bash ...
请注意,/bin/sh
并非始终是/bin/bash
的符号链接。