Shell:如何在循环数组时附加前缀?

and*_*ber 5 arrays bash shell

我正在尝试遍历一个数组并为数组中的每个值附加一个前缀.简化版代码:

#!/bin/sh
databases=( db1 db2 db3 )
for i in live_${databases[@]} stage_${databases[@]}
do
    ....
done
Run Code Online (Sandbox Code Playgroud)

但是,它只将前缀添加到数组中的第一个值 - 它循环的值是:

live_db1 db2 db3 stage_db1 db2 db3
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?谢谢.

Joh*_*ica 15

databases=( db1 db2 db3 )
for i in ${databases[@]/#/live_} ${databases[@]/#/stage_}
do
    ....
done
Run Code Online (Sandbox Code Playgroud)