当用于bash脚本时,如何为不同的参数和值自动化和通用化以下命令?
我想在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
“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]}"