簡體   English   中英

Bash 中的數組:顯示數組的所有元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM