title: Bash: Use a variable as an array name
body: <p>I am parsing a log file and creating associative arrays for each user with the line number and the last field (total time logged in). The lines of the log file look like this:</p>
  
  <pre><code>jww3321   pts/2        cpe-76-180-64-22 Mon Oct 18 23:29 - 00:27  (00:58)
  jpd8635   pts/1        cpe-74-67-131-24 Mon Oct 18 23:22 - 03:49  (04:26)
  </code></pre>
  
  <p>Where the first field (jww3321) will be the array name and the first entry in the array will be (1,00:58), the next will be (2,(the next time for user)). In order to obtain the proper keys I need to save the the length of list and add  one to it when I add the next value to a user array. My code so far looks like this:</p>
  
  <pre><code>cat lastinfo.txt | while read line
  do
      uname=`echo "$line" | awk '{print $1;}'`
      count=`echo "${#$uname[@]}"`
      echo "$count"
  done
  </code></pre>
  
  <p>I have tried using indirect references but I am stuck with this error:</p>
  
  <pre><code>l8t1: line 7: ${#$uname[@]}: bad substitution
  </code></pre>
  
  <p>Any suggestions?</p>