数组中的分隔符 Bash/Shell
- 论坛
- 数组中的分隔符 Bash/Shell
24 浏览
匿名的
0 Comments
在Bash/Shell中,数组的元素通过$IFS
(内部字段分隔符)的第一个字符进行连接。
(IFS=':'; echo "${array[*]}")
修改$IFS
会带来许多副作用。我建议只在子shell内的短时间内更改它,以免影响脚本的其他部分。
需要注意的是,${array[*]}
周围的双引号是必需的,以使其正常工作。如果没有双引号,它将使用冒号连接元素,然后立即重新拆分它们(基于冒号,因为它在$IFS
中,并且未引用的变量引用会进行词分割)。重新拆分完全颠倒了连接操作(并且可能还会拆分包含冒号的任何元素)。然后将重新拆分的元素传递给echo
,它会重新连接它们,但这次是用空格(因为echo
不关注$IFS
)。始终对变量引用使用双引号。