动态修改数组元素[bash]

时间:2015-03-27 20:25:30

标签: arrays bash

如果我在bash中有一个数组,例如:

a=(1 2 3)

有没有办法可以以干净简洁的方式打印数组,但同时改变每个元素的输出(添加/删除文本)。假设我想打印数组但添加" lol"打印时每个元素的末尾...例如。

echo ${a[@]lol}
1lol 2lol 3lol

有没有人知道这样做的方法,而不必创建新数组或在原始数组中进行一些循环?

1 个答案:

答案 0 :(得分:0)

参数展开应用于每个元素:

$ a=(1 2 3)
$ echo "${a[@]/%/lol}"
1lol 2lol 3lol

对于具体打印,请考虑使用printf,它会重复该模式,直到参数用完为止:

$ printf "%slol\n" "${a[@]}"
1lol
2lol
3lol