'Jenkinsfile ${steps.env.BUILD_NUMBER}: bad substitution

I am trying to print a variable in Jenkins. But I am getting an error saying "bad substitution". I am using Jenkinsfile to achieve that. This is what I am doing.

static def printbn() {
    sh '''
            #!/usr/bin/env bash

            echo \"${env.BUILD_NUMBER}\"
    '''
}

pipeline {
    agent any
        stages {
            stage('Print Build Number') {
                steps {
                    printbn()
                }
            }
        }
}

Error that I am getting

/var/lib/jenkins/workspace/groovymethod@tmp/durable-7d9ef0b0/script.sh: line 4: ${steps.env.BUILD_NUMBER}: bad substitution

NOTE: I am using Jenkins version Jenkins ver. 2.163



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source