REF: https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API
USER=admin
PASSWD=admin
TOKEN=12345678
IP=x.x.x.x
JENKINS_URL="http://$USER:$PASSWD@$IP:8080"
JOB_NAME="case1-gradle-examples"
$ curl -s --user $USER:$PASSWD http://$IP:8080/crumbIssuer/api/json
{"_class":"hudson.security.csrf.DefaultCrumbIssuer","crumb":"58e45f5135ae87a5fb9043e7b46xxxxx","crumbRequestField":"Jenkins-Crumb"}
$ CRUMB=$(curl -s "http://$USER:$PASSWD@$IP"':8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)')
or
$ CRUMB=$(curl -s --user $USER:$PASSWD $JENKINS_URL'/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)')
$ echo $CRUMB
Jenkins-Crumb:58e45f5135ae87a5fb9043e7b46xxxxx
$ curl -X POST -H $CRUMB $JENKINS_URL/job/${JOB_NAME}/build?token=$TOKEN
$ curl -X POST -H $CRUMB $JENKINS_URL/job/${JOB_NAME}/build?token=$TOKEN \
--data-urlencode json='{"parameter": [{"name":"p1", "value":"test"}]}'