Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Shell interpreter and inline bash script on Windows

Phillip Bonner
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
October 18, 2019

We're trialling Bamboo 6.10 on a Windows 2008 server (soon to be upgraded to 2019) and I've got some shell code to perform file modifications using "sed" at the end of the build. 

The docs at https://confluence.atlassian.com/bamboo/script-289277046.html for the "Shell" option under "Interpreter" say:

This option selects the interpreter based on the first line of the script, typically using the shebang.

So I've selected "Shell" for the interpreter option, selected "Inline" for the script location option, and the full inline script I'm trying to run looks like this:

"C:/Program Files/Git/bin/bash.exe"

sed -i '/version=/c\version=${bamboo.jira.version}' gradle.properties
sed -i '/window.APP_VERSION =/c\window.APP_VERSION = ${bamboo.jira.version};' HtmlClient/src/setup.js.temp

A screenshot of the full script configuration inside the Bamboo job in case it's useful:

BambooJob.png

When i run the build plan the build just hangs forever on the first line as if it is running bash.exe and awaiting input, rather than using that bash.exe path to run the commands that follow. Using a shebang "#" in front of the bash path doesn't work either as an error is thrown due to "#" not being recognised.

The last comment by Przemek Bruski on 02/Sep/2016 4:30 PM in the issue https://jira.atlassian.com/browse/BAM-13383 suggests a second issue https://jira.atlassian.com/browse/BAM-17864 was raised to address this type of scenario. This second issue is marked as fixed so it sounds like this should be possible. 

Is what I'm trying to achieve here actually possible or do I just have to rewrite the script using cmd.exe or Powershell instead?

Any guidance is appreciated :)

 

1 answer

1 accepted

2 votes
Answer accepted
Daniel Santos
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
October 21, 2019

Hello @Phillip Bonner

Thank you for sharing your findings, they saved me some time when investigating this.

According to my tests your inline script should start with:

#!c:\progra~1\git\bin\bash.exe

⚠️ No spaces in the path and no surrounding quotes.
This is the default format of shebang (which comes from Unix systems).


I've updated [BAM-17864] In script task, parse the shebang line and execute that interpreter directly in order to save the time of other users that might reach the same bug report.

Please let me know if that will fix the issue. =]

Phillip Bonner
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
October 21, 2019

That did the trick thank you!

Like Daniel Santos likes this
Daniel Santos
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
October 22, 2019

That is great! You are welcome!

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events