【发布时间】:2016-04-19 02:56:09
【问题描述】:
从文件中填充数组应该是基本的,但我无法让它工作。
#!/bin/bash
declare -a a
i=0
cat "file.txt" | while read line; do
a[$i]="$line"
i=$(($i + 1))
done
echo "${a[0]}"
这会打印一个空行。对于包含“Foo”和“Bar”行的文件,这是 bash -x 的输出:
+ declare -a a
+ i=0
+ cat file.txt
+ read line
+ a[$i]=Foo
+ i=1
+ read line
+ a[$i]=Bar
+ i=2
+ read line
+ echo ''
我什至无法让 readarray 内置工作:
#!/bin/bash
declare -a b
cat "file.txt" | readarray b
echo "${b[0]}"
+ declare -a b
+ cat file.txt
+ readarray b
+ echo ''
我在这里做错了什么?
【问题讨论】:
标签: arrays bash shell scripting