Bash 和键值对或映射

Kan*_*nty 8 bash shell-script

我们正在编写一个 bash 脚本,它基本上完成了 python 字典的工作。下面是我们正在使用的代码 siffet 和预期的输出。

#!/bin/bash
declare -A serviceTag
serviceTag["source"]="ccr"
declare -A services
services+=( ["dataservice"]="latest" )

serviceTag+=( ["services"]=services )

echo "$serviceTag"
Run Code Online (Sandbox Code Playgroud)

预期输出是

{"source":"ccr","services":{"datasetvice":"latest"}}
Run Code Online (Sandbox Code Playgroud)

但我们得到的是

ccrservices
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我们解决我们在这里犯的错误吗?我们如何使用 bash 及其代码来实现这一目标?

问候, 坎图

Jet*_*sel 0

不确定,但你可以尝试。

printf '{"%s":"%s","%s":"%s":{"%s":"%s"}}\n' "${!serviceTag[@]}" "${serviceTag[@]}" "${!services[@]}" "${services[@]}" 
Run Code Online (Sandbox Code Playgroud)