我想动态创建和填充一个数组,但它不起作用:
i=0
while true; do
read input
field[$i]=$input
((i++))
echo {$field[$i]}
done
尝试这样的东西:
#! /bin/bash
field=()
while read -r input ; do
field+=("$input")
done
echo Num items: ${#field[@]}
echo Data: ${field[@]}
当没有更多输入的情况下(文件结束,键盘中的^D
)时,它停止读取,然后打印读取的元素数和整个数组。
分配很好;查找是错误的:
echo "${field[$i]}"
i= field=()
while :; do
read -r 'field[i++]'
done
是一种方法。mapfile
是另一个。或其中任何一个。但是您发布的内容是有效的。