【问题标题】:Separation character in array Bash/Shell [duplicate]数组 Bash/Shell 中的分隔符 [重复]
【发布时间】:2020-03-16 09:25:59
【问题描述】:

如何控制数组分隔其元素的方式?如果你这样做:

echo ${array[*]}

它显示:

element1 element2 element3

我希望它是:

element1:element2:element3

【问题讨论】:

    标签: arrays bash shell


    【解决方案1】:

    元素由$IFS(内部字段分隔符)的第一个字符连接。

    (IFS=':'; echo "${array[*]}")
    

    修改$IFS 有很多副作用。我建议只在子shell 内短时间更改它,这样脚本的其余部分就不会受到影响。

    【讨论】:

    • 请注意,${array[*]} 周围的双引号是正常工作所必需的。没有它们,它将用冒号连接元素,然后立即重新拆分它们(基于冒号,因为这是在$IFS 中,并且单词拆分是未引用的变量引用所发生的事情)。重新拆分完全反转了连接操作(也可能拆分任何包含冒号的元素)。然后它将重新拆分的元素传递给echoecho 重新加入它们,但这次有空格(因为echo 不注意$IFS)。总是双引号你的变量引用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-03
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    • 2014-06-11
    • 1970-01-01
    • 2017-12-05
    相关资源
    最近更新 更多