Bash : 将 Array 拆分为 KV 对
Bash : Split Array into KV pairs
我正在编写一个脚本,通过 JQ 我正在获取环境变量,我需要它们以 KV 对的形式用于其他类型的文件。目前,我在 Bash 数组
中有如下元素
DD_TRACE_CLI_ENABLED:true
PRODUCT:buy_box
TRACE_ID:$NOMAD_ALLOC_ID
现在,当我打印时,我需要这样:
- name: DD_TRACE_CLI_ENABLED
value: true
- name: PRODUCT
value: buy_box
我当前的代码
if [ ! -z "$env_params" -a "$env_params" != " " ]; then
env_params_as_array=(${env_params//,/ })
for each in "${env_params_as_array[@]}"
do
echo $each
echo -e "${myCustomIndentTab}- $each" >> values-.yaml
done
fi
我怎样才能做到这一点?谢谢。
bash数组:
env_params_as_array=(
DD_TRACE_CLI_ENABLED:true
PRODUCT:buy_box
TRACE_ID:"$NOMAD_ALLOC_ID"
)
按您想要的方式打印:
for p in "${env_params_as_array[@]}"
do
IFS=':' read -r k v <<< "$p"
printf -- '- name: %s\n value: %s\n' "$k" "$v"
done |
sed "s/^/$myCustomIndentTab/" > "values-.yaml"
我正在编写一个脚本,通过 JQ 我正在获取环境变量,我需要它们以 KV 对的形式用于其他类型的文件。目前,我在 Bash 数组
中有如下元素DD_TRACE_CLI_ENABLED:true
PRODUCT:buy_box
TRACE_ID:$NOMAD_ALLOC_ID
现在,当我打印时,我需要这样:
- name: DD_TRACE_CLI_ENABLED
value: true
- name: PRODUCT
value: buy_box
我当前的代码
if [ ! -z "$env_params" -a "$env_params" != " " ]; then
env_params_as_array=(${env_params//,/ })
for each in "${env_params_as_array[@]}"
do
echo $each
echo -e "${myCustomIndentTab}- $each" >> values-.yaml
done
fi
我怎样才能做到这一点?谢谢。
bash数组:
env_params_as_array=(
DD_TRACE_CLI_ENABLED:true
PRODUCT:buy_box
TRACE_ID:"$NOMAD_ALLOC_ID"
)
按您想要的方式打印:
for p in "${env_params_as_array[@]}"
do
IFS=':' read -r k v <<< "$p"
printf -- '- name: %s\n value: %s\n' "$k" "$v"
done |
sed "s/^/$myCustomIndentTab/" > "values-.yaml"