читателей Noble StackOverflow,Bash - расширение переменной вложенных в переменной
У меня есть запятыми файл, каждая строка которого я помещаю в массив. данных выглядит так ...
25455410,GROU,AJAXa,GROU1435804437
25455410,AING,EXS3d,AING4746464646
25455413,TRAD,DLGl,TRAD7176202067
Есть 103 строк, и я могу генерировать 103 массивов без проблем.
n=1; while read -r OrdLine; do
IFS=',' read -a OrdLineArr${n} <<< "$OrdLine"
let n++
done < $WkOrdsFile
ОДНАКО, я могу получить доступ только массивы так ...
echo "${OrdLineArr3[0]} <---Gives 25455413
Я не могу получить доступ к нему с номером 1-103 в качестве переменной - например, следующий не работает. ..
i=3
echo "${OrdLineArr${i}[0]}
Это приводит к ...
./script2.sh: line 24: ${OrdLineArr${i}[0]}: bad substitution
Я думаю, что ответ может включать «eval», но я не могу найти подходящий пример для заимствования. Если кто-то может это исправить, то приведенный выше код упрощает обработку 2d-массива в bash!
Большое вам спасибо за помощь!
Dan
Возможно дубликат http://stackoverflow.com/questions/6724056/nested-shell-parameter-expansion. – Chandranshu
Bash поддерживает только одномерные массивы, и вам будет лучше использовать Perl для этой задачи. Если вам действительно нужно использовать Bash, проверьте http://tldp.org/LDP/abs/html/arrays.html конкретный пример 27.17 – MattSizzle
@ruakh - косвенное расширение внутри функции обработало удовольствие. Это очень приятная парадигма для 2-х массивов, когда они вынуждены использовать bash для их обработки! Спасибо! – user3000596