我正在使用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")
那么,请告诉我要修改什么?
答案 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'
或者,您也可以将它们分隔为&&
而不是;
,从而仅在前一个命令成功时执行下一个命令。