- 
    
Bug
 - 
    Resolution: Duplicate
 - 
    
Major
 - 
    None
 
Description:
When using the kubernetes plugin and executing a script inside of a container block, environment variables that contain a literal dollar in their value appear to have an extra dollar added before the existing literal dollar.
E.g. if the environment and container block were:
environment {
  FOO="\$BAH"
}
steps {
  container('busybox') {
    sh 'echo "FOO=$FOO"'
  }
}
then the console output shows:
[Pipeline] withEnv
[Pipeline] {
[Pipeline] container
[Pipeline] {
[Pipeline] sh
+ echo 'FOO=$$BAH'
FOO=$$BAH
[Pipeline] }
[Pipeline] // container
[Pipeline] }
[Pipeline] // withEnv
Expected behaviour:
the value of the environment variable is not altered when referenced inside the container block.
Work around:
None that I've found yet.
Other info:
Some other permutations I've tried:
- When the script is executed outside of the container block, the environment variable value is unchanged.
 - When the value of the environment variable contains a literal dollar not at the start of the string, the value is still changed. E.g. A value of "Something \$BAH" echoes as "Something $$BAH"
 
Environment where the bug was seen:
Jenkins: CloudBees Core Managed Master 2.204.3.2-rolling
 Kubernetes plugin: 1.23.1
- duplicates
 - 
                    
JENKINS-61950 Environment variables with '$' have '$$' when used in sh step inside a container step.
-         
 - Resolved
 
 -