[英]Array in Bash: Displaying all elements of array
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
嘗試了所有方法來顯示數組的所有元素,但沒有獲得所需的輸出。 它顯示數組的最后一個元素。
為了能夠循環填充數組,請使用:
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
您正在讀取數組
arr
的數據並嘗試打印array
您繼續使用read -a
重新定義array
。 該代碼應該這樣寫:
#!/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
希望這可以幫助其他有同樣問題的人。
在 shell 中顯示數組的所有內容:
"${arr[*]}"
清理你的腳本(但不確定你的意圖是什么):
read -p "Enter N " N # User inputs the number of entries for the array
ARR=() # Define empty array
#using c-style loop
for ((i=1;i<=N;i++))
do
read -p "Enter array element number $N: " ADD # Prompt user to add element
ARR+=($ADD) # Actually add the new element to the array.
done
echo "${ARR[*]}" # Display all array contents in a line.
我從@choroba 找到了一個類似的解決方案: How to echo all values from array in bash
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.