shell脚本jenkins中的语法错误

时间:2015-04-15 08:11:52

标签: shell jenkins

我正在使用jenkins,所以我试图在' 执行shell '

中执行以下代码

以下是脚本:

ssh user@prod-server
cd /myfolder
pwd

if [ ! -d myproj ]; then
  git clone http://prod-server/bbb/myproj.git
else
  cd myproj
  pwd
  git pull
fi

在' 执行shell ',我尝试如下,但在尝试构建时遇到语法错误:

ssh prod-server  'cd /myfolder && pwd && if [ ! -d myproj ]; then git clone http://prod-server/bbb/myproj.git else cd myproj  pwd  git pull  fi'

以下是语法错误:

Syntax error: end of file unexpected (expecting "fi")

那么,请告诉我要修改什么?

1 个答案:

答案 0 :(得分:2)

语法错误是可以预期的,因为else树中的单个命令并没有真正分开。你的shell(bash我假设)应该如何知道命令的开始或结束?请尝试以下方法:

ssh prod-server  'cd /myfolder && pwd && if [ ! -d myproj ]; then git clone http://prod-server/bbb/myproj.git else cd myproj; pwd; git pull; fi'

或者,您也可以将它们分隔为&&而不是;,从而仅在前一个命令成功时执行下一个命令。