jenkins执行shell命令修改不了目录的问题

前提是你 提交于 2021-02-05 14:43:26

jenkins默认是有一个当前目录作为运行环境,执行的操作均基于此目录,如果创建的jenkins项目是free style的,如果要执行远程命令,就不方便修改执行目录了。

例子:如果想通过jenkins执行一个sh脚本,里面有cd命令,项目是free style的,则用exectue command over ssh,会出一build不结束的现象。原因就是sh里不能出现cd命令去修改当前执行的目录。

要如何解决这个问题呢?

1种可选的方案是使用pipeline项目,用dir(目录){}代码来限制。但是pipeline使用上稍复杂,这里只是简单的执行一个命令,有点不太必要。

2种方案是使用嵌套sh调用。即jenkins执行一个简单的脚本,这个脚本再调用真正执行的脚本。其本质上是重新执行一个后台任务。如

jenkins.sh

#/bin/bash

nohup /dir/another.sh >/dev/null 2>&1

exit 0

another.sh才是真正的脚本,里面可以使用任何命令了。

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!