小编Dan*_*i_l的帖子

BASH 关联数组打印

有没有办法在不遍历所有元素的情况下打印整个数组([key]=value)?

假设我创建了一个包含一些元素的数组:

declare -A array
array=([a1]=1 [a2]=2 ... [b1]=bbb ... [f500]=abcdef)
Run Code Online (Sandbox Code Playgroud)

我可以打印回整个数组

for i in "${!array[@]}"
do
echo "${i}=${array[$i]}"
done
Run Code Online (Sandbox Code Playgroud)

但是,似乎 bash 已经知道如何一次性获取所有数组元素 - 键${!array[@]}和值${array[@]}

有没有办法让 bash 在没有循环的情况下打印这个信息?

编辑:
typeset -p array这样做!
但是,我无法在一次替换中同时删除前缀和后缀:

a="$(typeset -p array)"
b="${a##*(}"
c="${b%% )*}"
Run Code Online (Sandbox Code Playgroud)

有没有更干净的方法来获取/打印输出的键=值部分?

bash array associative-array

26
推荐指数
3
解决办法
3万
查看次数

标签 统计

array ×1

associative-array ×1

bash ×1