【发布时间】:2016-11-02 18:52:42
【问题描述】:
我正在尝试使用 Bash 脚本将结构化文件的信息读入关联数组。该文件的每一行都包含一个人的姓名及其地址,用“|”分隔。例如:
person1|address of person1
person2|address of person2
...
personN|address of personN
我尝试使用下面的脚本来执行此操作。在 WHILE 循环中,正在打印信息。但是,在 FOR 循环中不会打印信息。似乎信息没有存储在 WHILE 循环之外的关联数组中。
我做错了什么?为什么这不起作用?有没有更有效的方法来做到这一点?
#!/bin/bash
declare -A address
cat adresses.txt | while read line
do
name=`echo $line | cut -d '|' -f 1`
add=`echo $line | cut -d '|' -f 2`
address[$name]=$add
echo "$name - ${address[$name]}"
done
for name in ${!address[*]}
do
echo "$name - ${address[$name]}"
done
【问题讨论】: