On Thursday, May 2, 2019 at 6:35:58 AM UTC-6, b o b i wrote:
>
> Thank you, that work.
>
> Could you explain me why "\$" worked, i.e. where it is documented? (I lost
> pretty much time with such "nonsense"). (a bash variable should be expanded
> inside a bash script as $var or "${var}" etc., i.e. why in a bash, the vars
> are not bashingly treated?)
>
>
The pipeline domain specific language is based on groovy. Groovy does not
expand variable references in strings surrounded by single quote characters
(ASCII 0x27). Groovy expands variable references in strings surrounded by
double quote characters (ASCII 0x22). A groovy variable reference in a
string can have the same syntax as a bash variable reference.
Thus, your text:
sh """
echo ${mytime}
"""
attempts to resolve the groovy variable 'mytime'.
If you had used:
sh '''
echo ${mytime}
'''
it would attempt to resolve the shell variable 'mytime'.
See http://groovy-lang.org/syntax.html#_single_quoted_string and
http://groovy-lang.org/syntax.html#_double_quoted_string for more details.
Mark Waite
> On Thursday, May 2, 2019 at 2:27:40 PM UTC+2, Daniel Butler wrote:
>>
>> Replace ${mytime} with \$mytime
>>
>> The mytime variable you've created is a bash one.
>>
>> Regards
>> Daniel
>>
>>
>> On Thu, 2 May 2019, 1:16 pm b o b i, <[email protected]> wrote:
>>
>>> Jenkins 2.174, in a scripted pipeline the following
>>>
>>> sh """#!/bin/bash
>>> echo "TTTTTTT"
>>> mytime="`date '+%Y_%m_%d__%H_%M_%S'`"
>>> echo ${mytime}
>>> """
>>>
>>> produces
>>>
>>> groovy.lang.MissingPropertyException: No such property: mytime for class:
>>> groovy.lang.Binding
>>> at groovy.lang.Binding.getVariable(Binding.java:63)
>>> at
>>> org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:270)
>>> at org.kohsuke.groovy.sandbox.impl.Checker$6.call(Checker.java:289)
>>> at
>>> org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:293)
>>> ...
>>>
>>> How can I have current time expanded as a string without the above error?
>>>
>>> --
>>> 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 [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/jenkinsci-users/3b826017-27f1-45c9-925c-f396b13bcea9%40googlegroups.com
>>>
>>> <https://groups.google.com/d/msgid/jenkinsci-users/3b826017-27f1-45c9-925c-f396b13bcea9%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jenkinsci-users/34eb7130-cee0-4cab-be7e-dfffcd1fd572%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.