这似乎应该是愚蠢的容易但我似乎无法让它工作!我有一个字符串,我想根据新行分成一个数组。
以下基本上就是我要做的。
echo $devices
serial1 device
serial2 device
arr=$(magic_function $devices)
echo ${arr[0]}
serial1 device
echo ${arr[1]}
serial2 device
答案 0 :(得分:3)
IFS
(内部字段分隔符)确定如何在bash中分割单词。不带引号的扩展总是分开的。默认情况下,这是\ t,\ n和''。您可以将其设置为\ n,仅将您的单词拆分为换行符。
IFS=$'\n' arr=( $(yourfunc "$devices") )
较新版本的bash(4.0+)的另一个选项是mapfile
命令。
mapfile -t arr < <(yourfunc "$devices")