Inside a groovy script (for a jenkins pipeline): How can I run a bash
command instead of a sh
command?
I have tried the following:
Call "#!/bin/bash
" inside the sh
call:
stage('Setting the variables values') { steps { sh ''' #!/bin/bash echo "hello world" ''' } }
Replace the sh
call with a bash
call:
stage('Setting the variables values') { steps { bash ''' #!/bin/bash echo "hello world" ''' } }
Additional Info:
My command is more complex than a echo hello world
.
Click New Item on your Jenkins home page, enter a name for your (pipeline) job, select Pipeline, and click OK. In the Script text area of the configuration screen, enter your pipeline syntax.
These are the steps to execute a shell script in Jenkins: In the main page of Jenkins select New Item. Enter an item name like "my shell script job" and chose Freestyle project. Press OK.
The Groovy script you provided is formatting the first line as a blank line in the resultant script. The shebang, telling the script to run with /bin/bash instead of /bin/sh, needs to be on the first line of the file or it will be ignored.
So instead, you should format your Groovy like this:
stage('Setting the variables values') { steps { sh '''#!/bin/bash echo "hello world" ''' } }
And it will execute with /bin/bash.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With