bash - 如何将字符串拆分为数组

标签 bash

这看起来应该很愚蠢,但我似乎无法让它工作!我有一个字符串,我想根据新行将其分成一个数组。

这基本上就是我想要做的。

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/

相关文章:

bash - 获取特定字符串

bash - 尝试使用 bash 脚本抓取页面时出现 curl 1020 错误

bash - 无法获取文件夹的路径以在 linux 中工作

bash - 使用 Bash 在特定行之前插入多行文本

bash - nawk 将列添加到每一行

linux - 如何在 linux (bash) 中循环包含两个不同模式文件的列表?

linux - BASH - 基于变量创建和填充目录

linux - 在哪里放置 shell 脚本/函数? .bashrc 还是 bin?

linux - 最后连接到系统的用户

mysql - 通过 debconf-set-selections 为 mysql 预配置一个空密码