Inline script variables subtitling.
Asked by neb0t:

Hello,

Is it possible to prevent variables subscription in Bamboo inline powershell / bash without moving it to the external script's file (For insline script all ${bamboo.\<var\>} become real data.)?

Bamboo version is 5.15.


Answers:
author: Jeyanthan I
body: Hi,

Did you mean that you wanted to Inject new Bamboo variables from your script file directly instead of [Inject Bamboo variables task](https://confluence.atlassian.com/bamboo/configuring-a-variables-task-687213475.html) that wants a properties file location?

If your requirement is to just use variables within a script, how about using just the [environment variables of your operating system](https://stackoverflow.com/questions/18547881/shell-script-to-set-environment-variables)?

comments: author: neb0t
body: Not exactly: I want to grub value from the Bamboo shared variables during runtime (job execution).

i used DSL plugin to generate script inline job, but bamboo replaced all ${bamboo.var} with the values.

Then I tried to use $bamboo_var but output did not have any valid data from the shared variable.

I think if I will use external file (powershell script) with bamboo variable then it might work.


author: somethingblue
body: Hi neb0t,  

Based on the description it appears you're trying to prevent Bamboo from dumping its own variables to the Terminal. If that is not correct please let me know and we'll go from there. In the meantime take a look at the Community post [Can you wait and set Bamboo Variables in an inline script](https://community.atlassian.com/t5/Bamboo-questions/Can-you-wait-and-set-Bamboo-Variables-in-an-inline-script/qaq-p/622278) as that may provide some additional clues to help you accomplish this goal.  

Also, if you could provide a bit more of a description of what you're trying to accomplish and possibly provide a use case that would allow us to more accurately answer this question.  

Cheers,  

Branden

comments: author: neb0t
body: Yes. I do not want to expose my password in the task or terminal or any other section in the job configuration.

Inline script variables also looks badly - I still can see unmasked password.

From official atlassian documentation I found that I'm not able to prevent dumping date from inline script but I couldn't find any information about external (file) script.

i just want to use ${bamboo.SUPER_PASSWORD} in the inline script, but I'm getting value instead of original definition.


author: somethingblue
body: Hi,  

When running a Script task in Bamboo, all bamboo\<dot\> variables will become available to the script to be used whenever needed, e.g. If in the script inline you are attempting to connect to another server, e.g:

```
ssh user01:${bamboo.password}@domain.com
```

In the Bamboo logs, the password will be masked, however, ${bamboo.password} value will be used when the SSH command gets executed. When running a Script task, Bamboo creates a child session of Terminal/CMD/Powershell and the Bamboo variables will be available for the duration of the script.

<br />

If user has defined a variable (e.g bamboo.password = mySecretPassword) in Bamboo and in that particular JOB he wants to run a Script task but not use the value defined for that variable, you could run a custom build overwriting the existent variables.  

At this point can I have the following informaiton:

* *What you have defined in bamboo*
* *Your inline script*
* *The actual result*
* *The expected result*

Cheers,

Branden


author: neb0t
body: Sure.

So, here is what I got:

[link](https://pastebin.com/DTVQ1t0H "After DSL job")

Original script was :

[link](https://pastebin.com/PwmCKx5a)

I used this plugin: [link](https://marketplace.atlassian.com/plugins/ch.mibex.bamboo.plandsl/server/overview)