我看到了很多不同的解决方案来解决一个问题,从管道中保留一个数组但是似乎没有人为我做这个技巧,目前我的脚本正常工作但数组“databasesarray”在“完成”时丢失,如何我会用复杂的管道方案来保存这些信息吗?
databasesarray=()
N=0
dbs -d 123123 | grep db|awk '{print $2}'|while read db;
do
databasesarray[$N]="$db";
databasesarray[$N]+=$(gdb $db|grep dn);
echo ${N} ${databasesarray[$N]};
N=$(($N + 1));
done
答案 0 :(得分:3)
在循环中填充数组的更好,更有效的方法:
databasesarray=()
while read -r db; do
databasesarray+=( "$db $(gdb "$db"|grep "dn")" )
done < <(dbs -d 123123 | awk '/db/{print $2}')
< <(...)
语法 PS:您可以使用read -a
来填充数组:
read -a databasesarray < <(dbs -d 123123 | awk '/db/{print $2}')