如果我在bash中有一个数组,例如:
a=(1 2 3)
有没有办法可以以干净简洁的方式打印数组,但同时改变每个元素的输出(添加/删除文本)。假设我想打印数组但添加" lol"打印时每个元素的末尾...例如。
echo ${a[@]lol}
1lol 2lol 3lol
有没有人知道这样做的方法,而不必创建新数组或在原始数组中进行一些循环?
答案 0 :(得分:0)
参数展开应用于每个元素:
$ a=(1 2 3)
$ echo "${a[@]/%/lol}"
1lol 2lol 3lol
对于具体打印,请考虑使用printf
,它会重复该模式,直到参数用完为止:
$ printf "%slol\n" "${a[@]}"
1lol
2lol
3lol