当用于bash脚本时,如何为不同的参数和值自动化和通用化以下命令?

当用于bash脚本时,如何为不同的参数和值自动化和通用化以下命令?,bash,loops,echo,Bash,Loops,Echo,我想在bash脚本中使用这个命令,每次我都会有一个包含参数的不同数组输入 知道我有一个数组(作为用户的输入),其中每列都包含“parameteri=valuei” 在介绍每个参数的名称和值时,我想去掉硬编码方面 例如,使用此输入: "id=123,verbosity=high" 我最终会得到最后的指示: curl -X POST JENKINS_URL/job/JOB_NAME/build \ --user USER:TOKEN \ --data-urlencode json='{"p

我想在bash脚本中使用这个命令,每次我都会有一个包含参数的不同数组输入

知道我有一个数组(作为用户的输入),其中每列都包含
“parameteri=valuei”

在介绍每个参数的名称和值时,我想去掉硬编码方面

例如,使用此输入:

"id=123,verbosity=high"
我最终会得到最后的指示:

curl -X POST JENKINS_URL/job/JOB_NAME/build \
  --user USER:TOKEN \
  --data-urlencode json='{"parameter": [{"name":"id", "value":"123"}, {"name":"verbosity", "value":"high"}]}'

什么是干净的方法

您可以通过指定的
key=value参数构建jsonParameters,让它变得性感起来:

#!/bin/bash

jsonParameters=""
while IFS=',' read -r -a parameterEntries; do
  for parameterEntry in "${parameterEntries[@]}"; do
    IFS='=' read -r key value <<< "$parameterEntry"
    [ ! -z "$jsonParameters" ] && jsonParameters="$jsonParameters,"
    jsonParameters="$jsonParameters {\"name\":\"$key\", \"value\": \"$value\"}"
  done
done <<< "$@"

谢谢你的回复@Bsquare,你能详细解释一下吗?我在回答中添加了解释。很好,所以当我摆脱第一个循环时,我是对的,因为我已经处理了包含参数的数组。谢谢,伙计,我很感激。
curl -X POST JENKINS_URL/job/JOB_NAME/build \
  --user USER:TOKEN \
  --data-urlencode json="{\"parameter\": [$jsonParameters]}"