Shiran,

Put #!/bin/bash at the start of the script. By default Jenkins calls sh, 
which is not the same as bash and sh does not have variable indirection. 
You can also safely remote the backslash if you use triple single-quotes:
node() {
    script='''#!/bin/bash
export FIRST_FOLDER=path/to/folder
export TEMP=FIRST_FOLDER
echo ${!TEMP}
'''
sh script
}

Martin

On Sunday, April 29, 2018 at 11:21:35 AM UTC-4, Shiran wrote:
>
> Hi,
>
> I want to get a variable's value, and I have its name stored in another 
> variable:
>
> I need to get the value of FIRST_FOLDER variable:
>
> In bash I would do:
> bash-4.2$ export FIRST_FOLDER=path/to/folder
> bash-4.2$ export TEMP=FIRST_FOLDER
> bash-4.2$ echo ${!FULL_WORD}
> path/to/workspace
>
> *Wanted output: path/to/folder*
>
> When I try to do it in Jenkins:
> script="""
> export FIRST_FOLDER=path/to/folder
> export TEMP=FIRST_FOLDER
> echo \${!FULL_WORD}
> """
> sh script
>
> I get: 
>
> script.sh: Bad substitution
>
>
> Please help
> Thanks :)
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/0c49f6b2-c91c-4703-840e-596eb3dddce2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to