Como passar variáveis do Jenkinsfile para o comando shell

Eu quero usar uma variável que estou usando dentro do meuJenkinsfile script e, em seguida, passe seu valor para a execução de um script de shell (como variável de ambiente ou parâmetro de linha de comando).

Mas o seguinteJenkinsfile:

for (i in [ 'a', 'b', 'c' ]) {
    echo i
    sh 'echo "from shell i=$i"'
}

Dá a saída:

a
from shell i=
b
from shell i=
c
from shell i=

A saída desejada é algo como:

a
from shell i=a
b
from shell i=b
c
from shell i=c

Alguma idéia de como passar o valor dei para o scipt shell?

Editar: Baseado emMatt's resposta, agora eu uso esta solução:

for (i in [ 'a', 'b', 'c' ]) {
    echo i
    sh "i=${i}; " + 'echo "from shell i=$i"'
}

A vantagem é que eu não preciso escapar do" no script de shell.

questionAnswers(3)

yourAnswerToTheQuestion