我有运行SQL查询并输出以下内容的bash脚本:
*************************** 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
答案 0 :(得分:1)
数组的索引必须是数字。但是您可以使用索引代替字段名。 变量仅在块内已知。但是,通过一个简单的技巧(来源),您就可以将它们带到外面。
# 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