Unable to print the CodeFresh variable in custom step

Custom step is unable to access CodeFresh variable if I use Golang templating. Below are the code snippet. The first line prints the variable value whereas golang templating is not printing the value. Is there any limitation?

    - 'echo "PULL Request Number is $CF_PULL_REQUEST_NUMBER"'
    - echo "PR Number is [[ env.Getenv "CF_PULL_REQUEST_NUMBER" ]]"


Since shell executes given echo command, shell rules take place, Go templates are not recognized. To get variable value please use $VAR syntax. More information can be found here.

I"m not sure you’re using the correct syntax
You can check the codefresh-run one in github.com/codefresh-io/steps. The syntax allows you to access steps variables

    left: '[['
    right: ']]'
  stepsTemplate: |-
        image: quay.io/codefresh/cli
        [[- $cmd := (printf "codefresh run \"%s\" -d" .Arguments.PIPELINE_ID ) -]]
        [[ if .Arguments.TRIGGER_ID ]]
            [[- $cmd = (printf "%s -t %s" $cmd .Arguments.TRIGGER_ID) -]]
        [[- end -]]


      [[/* Multiline string is required to support usage of 'colon' (:) character in the string. For example in the pipeline name. */]]
        [[/* Otherwise after template render there is a chance to have an object instead of a string. */]]
          - >-
            export BUILD_ID=$([[ $cmd ]]); if [ -z "$BUILD_ID" ]; then exit 1; fi
          - cf_export first_CF_OUTPUT_URL="${{CF_URL}}/build/$BUILD_ID"
          - cf_export BUILD_ID
      [[- if eq .Arguments.DETACH false ]]

Hope that help