我没有在网站上找到解决方案。
如何将文本内容存储到 bash 中的数组中?
这段代码实际上是这样做的,但在删除字符串之前有空格。
index=0
while read line; do
echo $line
str_array[index]="$line"
done < /testfile
对于 bash,使用内置mapfile
:
$ cat testfile
asdf
asdf
asdf
asdf
$ mapfile -t str_array < testfile
$ printf "%s\n" "${str_array[@]}"
asdf
asdf
asdf
asdf
在 bash 提示符下,请参阅help mapfile
您需要取消定义字段分隔符,所以它会像:
while IFS= read line; do
echo "$line"
...
done < /testfile
你可以这样做:
index=0
while IFS= read line ; do
str_array[$index]="$line"
index=$(($index+1))
done < testfile
或 正如@glennjackman 在评论中建议的那样
index=0
while IFS= read line ; do
str_array[index++]="$line"
done < testfile