#!/bin/bash Object () { # e.g account kind=$1 # e.g leandroAccount self=$2 shift shift # iterates over the remaining args for arg in "$@"; do # e.g name=Leandro becomes ARG_KEY=name ARG_VALUE=Leandro read ARG_KEY ARG_VALUE <<< $(echo "$arg" | sed -E "s/(\w+)=(.*?)/\1 \2/") if [[ ! -z "$ARG_KEY" ]] && [[ ! -z "$ARG_VALUE" ]]; then # declare the object's state!!!! # e.g export leandroAccount_balance=100 export ${self}_$ARG_KEY="$ARG_VALUE" fi done } Object account leandroAccount name=Leandro balance=500 echo $leandroAccount_name # prints Leandro echo $leandroAccount_balance # prints 500 Object account carlosAccount name=Carlitos balance=800 echo $carlosAccount_name # prints Carlitos echo $carlosAccount_balance # prints 800 # curl -H "ACTION: cicd" -H "ACTIONVAL: success" -H "REPO: complaint-backend-complaint" -H "BRANCH: develop" -H "BUILDNUM: 478" -H "BUILDVER: develop-0.0.478" -H "COMMIT: 3634e06b2c7b93cf146530917a93a30de25943e0" -H "JOBURL: https://jenkins-back.devopsnonprd.vayuktbcs:8080/job/complaint/job/backend/job/complaint-backend-complaint/job/develop/" -H "BUILDURL: https://jenkins-back.devopsnonprd.vayuktbcs:8080/job/complaint/job/backend/job/complaint-backend-complaint/job/develop/478/" -H "Content-Type: application/json" localhost:8081/azure/clm/notify # curl -H "Accept: application/json" -H "Content-Type:application/json" -X POST --data "{\"content\": \"✅✅✅✅✅\n*CI DONE*\nRepositories: ${repoNameOrigin}\nBranch: ${branchName}\nBuild Number: ${BUILD_NUMBER}\nImage Tag: ${buildVersion}\nCommit ID: ${GIT_COMMIT}\nJob URL: ${JOB_URL}\nBuild Log: ${BUILD_URL}console\"}" https://discord.com/api/webhooks/1270450815580111043/29nP43fgoajLtAHiSbRxRdPjgeE3i-4j4gw5ND4s3mzOsnHjOIeKZS2aZGwlMVkusmta