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.