echo "Enter N " # enter N for number of inputs for the loop
read N # reading the N
#using c-style loop
for((i=1;i<=N;i++))
do
read -a arr # arr is the name of the array
done
echo ${arr[*]} # 1
echo ${arr[@]} # 2
尝试了显示数组所有元素但未获得所需输出的所有方法。它显示了数组的最后一个元素。
答案 0 :(得分:2)
为了能够在循环使用中填充数组:
arr+=("$var")
完整代码:
read -p 'Enter N: ' N
arr=() # initialize an array
# loop N times and append into array
for((i=1;i<=N;i++)); do
read a && arr+=("$a")
done
答案 1 :(得分:2)
您正在阅读数组
arr
中的数据并尝试打印array
答案 2 :(得分:1)
您继续使用array
重新定义read -a
。代码应该像这样编写:
#!/bin/bash
echo "Enter N " # enter N for number of inputs for the loop
read N # reading the N
#using c-style loop
declare -a array
for((i=1;i<=N;i++))
do
read array[$i] # arr is the name of the array
done
echo ${array[*]} # 1
echo ${array[@]} # 2
可能有更好的方法来做到这一点。我只想说明如何修复当前的代码。
运行示例
$ bash ./dummy.sh
Enter N
2
3
4
3 4
3 4
答案 3 :(得分:0)
希望这能帮助其他有同样问题的人。
在shell中显示数组的所有内容:
if img and ref_img:
print("Both images extracted from directory successfully")
清理你的脚本(但不确定你的意图是什么):
"${arr[*]}"
我从@choroba 找到了类似的解决方案:How to echo all values from array in bash