【发布时间】:2017-08-23 10:35:09
【问题描述】:
我需要对 bash 关联数组的键执行模式替换。示例:
$ declare -A aa=( [A]=0 [B]=1 [C]=2 )
要在值前加上foo_,可以使用:
$ echo --${aa[@]/#/foo_}--
--foo_0 foo_1 foo_2--
但是如何给 keys 加上前缀呢?这不起作用(至少在 GNU bash 版本 4.3.30(1)-release 中):
$ echo --${!aa[@]/#/foo_}-- # <- does not work
----
有没有比以下解决方法更好的方法?
$ declare -a keys=( ${!aa[@]} )
$ echo --${keys[@]/#/foo_}--
--foo_A foo_B foo_C--
【问题讨论】:
标签: bash