我试图用 ':' 拆分字符串并将其存储在一个数组中,因此看起来像 a:b:c:d:x:y:z 的内容将存储在一个数组中,该数组包含 a, b、c、d、x、y、z 作为元素。
我写的是
IFS = ':' read - r -a ARR <<< "$INFO"
其中 INFO 是从包含上述格式的多个字符串的文件中读取的字符串。
我收到一条错误消息“IFS:找不到命令”。
我是这样读的:
while read INFO
最后,当我尝试将数组中的第一个元素分配给变量时,出现错误:
export NAME = $INFO[0]
我在这里得到的两个错误是 export: '=' not a valid identifier
和 export: '[0]: not a valid identifier
我是 bash 的新手。
最佳答案
这里的基本问题是您的代码在不允许的地方包含空格。例如,以下是非常好的语法(尽管它不符合 POSIX conventions on variable naming,它建议将小写字符用于应用程序定义的名称):
info_string='a:b:c:d:x:y:z'
IFS=: read -r -a info_array <<< "$info_string"
同样,在取消引用时,您需要大括号,并且(同样)不能在 =
周围放置空格:
name=${info_array[0]}
关于arrays - 用冒号分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45361053/