Cómo pasar variables de Jenkinsfile al comando de shell

Quiero usar una variable que estoy usando dentro de miJenkinsfile script, y luego pasa su valor a una ejecución de script de shell (ya sea como variable de entorno o parámetro de línea de comando).

Pero lo siguienteJenkinsfile:

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

Da la salida:

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

La salida deseada es algo como:

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

Alguna idea de cómo pasar el valor dei a la cáscara scipt?

Editar: Basado enDe Matt respuesta, ahora uso esta solución:

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

La ventaja es que no necesito escapar del" en el script de shell