【发布时间】:2015-09-08 09:56:36
【问题描述】:
脚本获取一个 URL,对其进行解析以获取所需字段,并将其输出重定向以保存在文件 file.txt 中。每次找到一个字段时,输出都会保存在一个新行上。
文件.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
当我运行这个脚本时,空格会导致单词被拆分,而不是得到 p>
期望的输出
Element [0]: A Cat
Element [1]: A Dog
etc...
我最终得到了这个:
实际输出
Element [0]: A
Element [1]: Cat
Element [2]: A
Element [3]: Dog
etc...
如何调整下面的循环,使每一行的整个字符串与数组中的每个变量一一对应?
【问题讨论】:
-
这就是Bash FAQ 001 的全部意义所在。还有this sectionBash FAQ 005中的数组主题。
-
我会将其链接为 stackoverflow.com/questions/11393817/… 的副本,但接受的答案很糟糕。
-
Etan,非常感谢您如此快速准确的回复!我曾尝试在论坛中搜索我的问题,但没有考虑在 stackoverflow 上查找常见问题解答。 mapfile 命令完全满足了我的需求!再次感谢 :) 回复 section 2.1。
-
(设置相反方向的链接,因为我们这里的答案比那里更好)。
标签: arrays bash loops scripting variable-assignment