数组 – 从Bash中的文本文件创建数组

前端之家收集整理的这篇文章主要介绍了数组 – 从Bash中的文本文件创建数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
一个脚本需要一个URL,解析所需的字段,并将其输出重定向以保存在一个文件file.txt中。每次找到一个字段时,输出将保存在新行上。

file.txt

A Cat
A Dog
A Mouse 
etc...

我想要使​​用file.txt并在一个新的脚本中创建一个数组,其中每行都是数组中自己的字符串变量。到目前为止我试过:

#!/bin/bash

filename=file.txt
declare -a myArray
myArray=(`cat "$filename"`)

for (( i = 0 ; i < 9 ; i++))
do
  echo "Element [$i]: ${myArray[$i]}"
done

当我运行这个脚本时,空格会导致单词分裂而不是获取

所需输出

Element [0]: A Cat 
Element [1]: A Dog 
etc...

我最终得到这个:

实际输出

Element [0]: A 
Element [1]: Cat 
Element [2]: A
Element [3]: Dog 
etc...

如何调整下面的循环,使每行上的整个字符串与数组中的每个变量一一对应?

使用 mapfile命令:
mapfile -t myArray < file.txt

错误正在使用 – 用于循环文件行的惯用方式是:

while IFS= read -r line; do echo ">>$line<<"; done < file.txt

详见Bash FAQ

猜你在找的Bash相关文章