I have a jenkins groovy script like this:
    freeStyleJob(“test”) {
        properties { githubProjectUrl(‘…’) }
        description(‘’’job description’’’.stripMargin('|'))
        logRotator{ numToKeep(100) }
        parameters {
            stringParam(’STRINGP1’, "", “STRINGP1 description”)
            stringParam('STRINGP2’, "", “StringP2 description”)
            booleanParam(‘b1’, false)
            booleanParam(‘b2’, false)
            booleanParam(‘b3’, false)
            stringParam("EMAIL_LIST", "", "Emails")
        }
        scm {
            github(‘repo’, '${STRINGP1}', 'git', ‘giturl’)
        }
        steps {
            shell '''|#!/bin/bash
                |ARGS=""
                |fi
                |if [[ ‘${b1}’ ]]; then
                |   ARGS=$ARGS" —-p b1”
                |fi
                |if [[ ‘${b2}’ ]]; then
                |   OS_ARGS=$ARGS" —-p b2”
                |fi
                |if [[ ‘${b3}’ ]]; then
                |   ARGS=$ARGS" —-p b3”
                |fi                
                |echo ${ARGS}'''.stripMargin('|')
        }
        publishers {
            archiveArtifacts {
                pattern(‘pattern’)
            }
            extendedEmail {
                ....
                }
            }
        }
    ....
  }
After the creation of job no matter whether user checks or unchecks the boolean parameter in the UI, the value for ARGS would be always "--p b1 ---p b2 --p b3". It means that the three if that exist in the shell script will be always evaluated to true. Why does this happen?
 
     
     
     
    