将每个mysql记录(多行)作为变量存储在bash中

将每个mysql记录(多行)作为变量存储在bash中,mysql,linux,bash,Mysql,Linux,Bash,我有一个bash脚本,它运行SQL查询并输出以下内容: *************************** 1. row *************************** name: danny id: 123 age: 1 wait: 326.000000 *************************** 2. row *************************** name: ronny id: 1234 age: 2 wait: 21.000000 我试图了解如何

我有一个bash脚本,它运行SQL查询并输出以下内容:

*************************** 1. row ***************************
name: danny
id: 123
age: 1
wait: 326.000000
*************************** 2. row ***************************
name: ronny
id: 1234
age: 2
wait: 21.000000
我试图了解如何创建一个数组并在其中存储每条记录,对于每条记录,我希望能够访问其参数,例如:

Person1["name"] = danny,  Person2["name"]=ronny

数组的索引必须是数字。但您可以使用索引而不是字段名。 变量仅在块内已知。但是,通过一个简单的技巧(sourcen),你可以把它们带到外面

# ASSUMPTION: the input data are in the file

Personen=$(mktemp)
i=0
while read line; do
    [[ "${line:0:1}" == '*' ]] && continue
    key=${line%%:*}
    value=${line##*: }
    [[ "$key" == "name" ]] && ((i++))
    echo "Person_${key}[$i]=\"$value\""
done < file >$Personen

source $Personen

echo "${Person_name[1]} ${Person_age[1]}"
echo "${Person_name[2]} ${Person_wait[2]}"

rm $Personen
danny 1
ronny 21.000000