Windows 如何在Cygwin中回显Jenkins工作区

Windows 如何在Cygwin中回显Jenkins工作区,windows,jenkins-pipeline,cygwin,Windows,Jenkins Pipeline,Cygwin,我正在尝试从jenkins管道构建作业,我的管道正在调用windows server上的一个shell脚本,该脚本位于cygwin终端中,问题是如何在cygwin中使用我的shell脚本中的jenkins工作区,尝试了以下命令不起作用,请有人提供建议。谢谢 In jenkins Pipeline: sh "/home/test.sh $WORKSPACE" In Cygwin: #!/cygdrive/d/cygwin64/bin/bash --login

我正在尝试从jenkins管道构建作业,我的管道正在调用windows server上的一个shell脚本,该脚本位于cygwin终端中,问题是如何在cygwin中使用我的shell脚本中的jenkins工作区,尝试了以下命令不起作用,请有人提供建议。谢谢

In jenkins Pipeline:
    
     sh "/home/test.sh $WORKSPACE"
In Cygwin:
#!/cygdrive/d/cygwin64/bin/bash --login

WORKSPACE=$1
echo "$WORKSPACE"

Out put from above command is 
D:Jenkinsworkspacey_test123_feature_test

but actual workspace is(multibranch pipeline) 
Running on win01 in D:\Jenkins\workspace\y_test123_feature_test

不确定cygwin是否会使用不同的命令来检索工作区,因为您可以看到上面的输出在单词之间不包含斜杠。

可以使用管道中的环境变量访问工作区

In jenkins Pipeline:
// Get workspace
// This will give you the workspace of the agent that is available in the current stage
def Workspace=env.WORKSPACE
// Convert path with \\ for cygwin
Workspace.replace("\\", "\\\\");
println(Workspace)
sh "/home/test.sh ${Workspace}"

有日志输出吗?Jenkins使用哪个shell?@Kumar这对你有用吗?其他可能是添加双斜杠或在cygwin中转换它path@Kumar我已经为路径添加了转换,以便您在cygwin中获得正确的输出。我已经更新了答案,请您检查。@Kumar:这对您有用吗