开发者社区 问答 正文

如何在Bash中加入数组元素?

如果我在Bash中有这样的数组:

FOO=( a b c )

如何用逗号将元素加入?例如,产生a,b,c。

展开
收起
保持可爱mmm 2020-01-15 10:14:11 353 分享 版权
1 条回答
写回答
取消 提交回答
  • Pascal Pilz将解决方案重写为100%纯Bash中的函数(无外部命令):

    function join_by { local IFS="$1"; shift; echo "$*"; }

    例如,

    join_by , a "b c" d #a,b c,d join_by / var local tmp #var/local/tmp join_by , "${FOO[@]}" #a,b,c

    另外,我们可以使用printf来支持多字符定界符,使用@gniourf_gniourf的想法

    function join_by { local d=$1; shift; echo -n "$1"; shift; printf "%s" "${@/#/$d}"; }

    例如,

    join_by , a b c #a,b,c join_by ' , ' a b c #a , b , c join_by ')|(' a b c #a)|(b)|(c join_by ' %s ' a b c #a %s b %s c join_by $'\n' a b c #a b c join_by - a b c #a-b-c join_by '' a b c #a\b\c

    问题来源于stack overflow

    2020-01-15 10:14:39
    赞同 展开评论
问答分类:
问答标签:
问答地址: