0

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?

1 Answer 1

2

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.

Sign up to request clarification or add additional context in comments.

1 Comment

Answer by Ralf is correct (so I won't make another competing answer). As an alternative, you can also consider a "here doc" syntax, described in second answer to this question: stackoverflow.com/questions/305035/…

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.