title: Jenkinsfile: illegal string body character after dollar sign; solution: either escape a literal dollar sign "\$5" or bracket the value expression
body: <p>My pipeline fails at the sh """ element of the Jenkinsfile. Any idea where things go wrong?</p>
  
  <pre><code>    stage('Install dependencies') {
                  when { expression { return params.dependencies } } }
          steps {
              sh """
                apt-get update
                              apt-get install -y openssh-server net-tools inetutils-ping python-pip rubygems
                              apt-get install -y \
                                  apt-transport-https \
                                  ca-certificates \
                                  curl \
                                  gnupg2 \
                                  software-properties-common
  
                              curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
  
                              add-apt-repository \
                                 "deb [arch=amd64] https://download.docker.com/linux/debian \
                                 $(lsb_release -cs) \
                                 stable"
  
                              apt-get update
                              apt-get install -y docker-ce docker-ce-cli containerd.io
                              curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
                              chmod +x /usr/local/bin/docker-compose
                              gem install serverspec pygmy
              """
          }
      }
  </code></pre>
  
  <p>The error message is:</p>
  
  <pre><code>WorkflowScript: 35: illegal string body character after dollar sign;
  solution: either escape a literal dollar sign "\$5" or bracket the value expression "${5}" @ line 35, column 17.
  </code></pre>