title: Jenkinsfile won't substitute variable
body: <p>I have a fairly simple script, but the Jenkinsfile never substitutes the variable (<code>since</code>) and I am not sure why.
  I have tried the <code>$since</code> and <code>${since}</code> syntax and each time the substitution is empty. The parameters work just fine.</p>
  
  <pre><code>since = ''
  
  pipeline {
      agent any
      options {
          buildDiscarder(logRotator(numToKeepStr: '5', artifactNumToKeepStr: '5'))
      }
      parameters {
          string(defaultValue: '', description: 'The service name you wish to display status', name: 'serviceName')
          choice(choices: ['swarm-group-test', 'swarm-group-prod'], description: 'Swarm environment to remove from', name: 'swarmEnv')
          string(defaultValue: '5', description: 'Number of minutes to look back in logs', name: 'numMinutes')
      }
      tools {
          nodejs "node-js-11.12.0"
      }
      stages {
          stage('Invoke Playbook') {
              steps {
                  script {
                      sh (script: "node -p -e \"var a = new Date(); a.setMinutes(a.getMinutes() - ${numMinutes}); a.toISOString();\"", returnStdout: true).trim()
                  }
                  echo "since: ${since}"
                  ansiColor('xterm') {
                      sh '''
                          export ANSIBLE_FORCE_COLOR=true
                          export ANSIBLE_STDOUT_CALLBACK=debug
                          ansible-playbook -b -v -u jenkins playbooks/display-service-status.yml -k --extra-vars="serviceName=$serviceName swarmEnv=$swarmEnv since=$since" -i playbooks/swarm-hosts
                      '''
                  }
              }
          }
      }
  }
  </code></pre>
  
  <p><strong>Output:</strong></p>
  
  <pre><code>since: 2019-09-30T12:43:12.134Z
  ansible-playbook -b -v -u jenkins playbooks/display-service-status.yml -k '--extra-vars=serviceName=TEST_openam swarmEnv=swarm-group-test since=' -i playbooks/swarm-hosts
  </code></pre>