这看起来应该很愚蠢,但我似乎无法让它工作!我有一个字符串,我想根据新行将其分成一个数组。
这基本上就是我想要做的。
echo $devices
serial1 device
serial2 device
arr=$(magic_function $devices)
echo ${arr[0]}
serial1 device
echo ${arr[1]}
serial2 device
最佳答案
IFS
(内部字段分隔符)决定了 bash 中单词的分割方式。未加引号的扩展总是被分割。默认情况下,这是\t、\n 和 ' '。您可以将其设置为\n 以便仅在换行符上拆分单词。
IFS=$'\n' arr=( $(yourfunc "$devices") )
较新版本的 bash (4.0+) 上的另一个选项是 mapfile
命令。
mapfile -t arr < <(yourfunc "$devices")
关于bash - 如何将字符串拆分为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15453763/