Bash: использовать переменную в качестве имени массива

Я разбираю файл журнала и создаю ассоциативные массивы для каждого пользователя с номером строки и последним полем (общее время входа в систему). Строки файла журнала выглядят следующим образом:

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)

Где первое поле (jww3321) будет именем массива, а первая запись в массиве будет (1,00: 58), следующая будет (2, ( в следующий раз для пользователя)). Чтобы получить правильные ключи, мне нужно сохранить длину списка и добавить к нему единицу, когда я добавляю следующее значение в пользовательский массив. На данный момент мой код выглядит следующим образом:

cat lastinfo.txt | while read line
do
    uname=`echo "$line" | awk '{print $1;}'`
    count=`echo "${#$uname[@]}"`
    echo "$count"
done

Я пробовал использовать косвенные ссылки, но застрял с этой ошибкой:

l8t1: line 7: ${#$uname[@]}: bad substitution

Есть предложения?

5
задан John Kugelman supports Monica 8 November 2011 в 03:10
поделиться