linux - Bash 脚本将带有空格分隔标记的字符串转换为数组

标签 linux arrays bash shell

我有一个字符串

echo $STRING

给出

first second third fourth fifth

基本上是一个用空格分隔的列表。

我如何获取该字符串并使其成为一个数组,以便

array[0] = first
array[1] = second

等..

我试过了

IFS=' ' read -a list <<< $STRING

但是当我做一个

echo ${list[@]}

它只打印出“first”,没有别的

最佳答案

其实很简单:

list=( $STRING )

或者更详细一点:

declare -a list=( $STRING )

PS:您不能在同一命令中导出 IFS 并使用新值。您必须先声明它,然后在以下命令中使用它的效果:

$ list=( first second third )
$ IFS=":" echo "${list[*]}"
first second third
$ IFS=":" ; echo "${list[*]}"
first:second:third

关于linux - Bash 脚本将带有空格分隔标记的字符串转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15575976/

相关文章:

regex - 如何将 grep 正则表达式匹配结果保存到变量?

linux - 共享硬盘上的 Git 存储库

c++ - 克里昂集成开发环境 : Use ssh as an environnent toolchains instead of MinGW/Cygwin on Windows

c++ - 用整数填充自定义整数数组

bash - 使用 shell 脚本将零填充为二进制数

linux - 使用文本并用作命令?

linux - 堆内存和交换内存有什么区别?

linux - Sahi 脚本不通过 Putty 运行

javascript - 在 jquery 中创建循环

javascript - 如何调用一组对象中同一列的属性? ( Node .js)