我有一个关联数组,其中键和值都是xml字符串。我正在使用它进行 bash 脚本中的查找/替换操作。
#!/usr/local/bin/bash
declare -A findReplace
findReplace['<item name="Alice" title="President"/>']='<item name Bob title="CEO"/>'
for e in "${findReplace[@]}"; do
find="$e"
replace="${findReplace[$e]}"
printf "tSearching for: ${find}n"
printf "tReplacing with: "${replace}"n"
done
这是这个的输出:
Searching for: <item name Bob title="CEO"/>
Replacing with:
查看值如何无法正确读取?我尝试使用索引进行迭代并使用该索引来拉入两者,但是键和值都只读取到空间。
希望这是清楚的。谢谢。
添加!
以迭代数组的键而不是其值。此外,避免将变量直接替换为 printf 的格式字符串。使用%s
并将变量作为单独的参数传递。
for e in "${!findReplace[@]}"; do
find="$e"
replace="${findReplace[$e]}"
printf 'tSearching for: %sn' "${find}"
printf 'tReplacing with: %sn' "${replace}"
done