【问题标题】:Modify array elements on the fly [bash] [duplicate]动态修改数组元素[bash] [重复]
【发布时间】:2015-03-28 04:27:38
【问题描述】:

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

a=(1 2 3)

有没有一种方法可以以简洁明了的方式打印数组,但同时更改每个元素的输出(向其中添加/删除文本)。假设我想打印数组,但在打印时在每个元素的末尾添加“lol”......例如

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

有没有人知道无需创建新数组或在原始数组中循环执行此操作的方法?

【问题讨论】:

  • 问题here提到了这个机制。

标签: arrays bash


【解决方案1】:

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

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

对于打印,请考虑使用printf,它会重复该模式直到参数用尽:

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

【讨论】:

    猜你喜欢
    • 2017-01-04
    • 2014-07-16
    • 2016-02-18
    • 2023-03-21
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多