Pipeline - Single quotes are lost when passing a String to a sh() step

Issue

String arg1 = "arg1" 
String arg2 = "arg2"

String cm = "curl -H \\'Authorization: ${arg1}\\' -H \\'X-CUSTOM-HEADER:${arg2}\\' www.google.com"

node { 
  sh cm 
}

The expected output is:

[Pipeline] {
[Pipeline] sh
+ curl -H 'Authorization: arg1' -H 'X-CUSTOM-HEADER:arg2' www.google.com

Actual output is:

Output: 
[Pipeline] sh 
+ curl -H ''\''Authorization:' 'arg1'\''' -H ''\''X-CUSTOM-HEADER:arg2'\''' www.google.com

Environment

Resolution

No action is required.

The “weird” escaping is just for the build console output of the command that was run, which escapes things one more level than what was actually received (to prevent things like ANSI escape codes from applying to that output).

Have more questions?

0 Comments

Please sign in to leave a comment.