syntax error in shell script jenkins

2019-09-11 02:08发布

I am using jenkins, so iam trying to execute below code in 'execute shell'

Below is the script:

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

In 'execute shell', iam trying as below but getting syntax errors while trying to build:

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'

Here is the syntax error:

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

So, please tell me what to modify?

标签: shell jenkins
1条回答
成全新的幸福
2楼-- · 2019-09-11 02:36

The syntax errors are to be expected, as the single commands in the else tree are not really separated. How should your shell (bash I presume) know where a command starts or ends? Try the following:

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'

Alternatively, you can also separate them by && instead of ; and thus execute the next command only when the former one succeeded.

查看更多
登录 后发表回答