我正在执行这段代码:
node('my_windows_slave') { sh 'ls' }
在我的Windows奴隶中,我可以正确执行sh
命令:
但是管道脚本无法运行该.sh
文件:
[Pipeline] sh [D:\workspace\sandbox_pipeline] Running shell script sh: D:\workspace\sandbox_pipeline@tmp\durable-2d7dd2f8\script.sh: command not found
我能注意到的是,这个.sh
文件甚至没有被创建,一旦我尝试bat
并且被罚款.
有什么线索可能是什么问题?
[UPDATE]
詹金斯不知何故无法创建SH
临时文件.已经检查了日志,权限,以及我想到的一切.
我会在批准之前留下我的解决方案作为答案,一旦我仍然不能100%确定根本原因并且可能有其他人出现了优雅的解决方案......
def shell(command) { return bat(returnStdout: true, script: "sh -x -c \"${command}\"").trim() }
注意
你仍然SH
在a中执行命令CMD
,这意味着一些%d
例如可以破坏你的SH
命令.