如何将字符串拆分为数组

时间:2013-03-16 19:33:30

标签: bash

这似乎应该是愚蠢的容易但我似乎无法让它工作!我有一个字符串,我想根据新行分成一个数组。

以下基本上就是我要做的。

echo $devices
serial1 device
serial2 device

arr=$(magic_function $devices)
echo ${arr[0]}
serial1 device
echo ${arr[1]}
serial2 device

1 个答案:

答案 0 :(得分:3)

IFS(内部字段分隔符)确定如何在bash中分割单词。不带引号的扩展总是分开的。默认情况下,这是\ t,\ n和''。您可以将其设置为\ n,仅将您的单词拆分为换行符。

IFS=$'\n' arr=( $(yourfunc "$devices") )

较新版本的bash(4.0+)的另一个选项是mapfile命令。

mapfile -t arr < <(yourfunc "$devices")