使用数组生成执行循环命令并将列转换为变量

时间:2014-08-19 07:06:27

标签: arrays bash perl awk

希望每行有三个数组并捕获所有数组并转向我可以在循环中执行带有这些值的命令时使用的变量。

数组示例“只是在我的脑海中,我不是那么好”:

Arr =  [ dba, password, db1;
         dba, password, db2;                   
         dba, password, db3; ]

我想要“;”成为循环的某种分隔符不确定是否可能,并且创建循环以创建类似的东西并捕获第一列和第三列:

sqlplus 1col[@]/2col[@]@3col[@]

2 个答案:

答案 0 :(得分:2)

您可以在Perl中使用哈希数组,如下所示:

use strict;
use warnings;

my @settings = (
    { dba => 'dba1', pass => 'pass1', db => 'db1' },
    { dba => 'dba2', pass => 'pass2', db => 'db2' },
    { dba => 'dba3', pass => 'pass3', db => 'db3' }
);

for my $set (@settings) {
    system("sqlplus", "$set->{'dba'}/$set->{'pass'}\@$set->{'db'}");
}

这将执行sqlplus dba1/pass1@db1,然后执行sqlplus dba2/pass2@db2

答案 1 :(得分:1)

看起来你想要使用数组结构数组

my @Arr = (
     [qw( dba password db1 )],
     [qw( dba password db2 )],               
     [qw( dba password db3 )],
);

# to access first array
print "$Arr[0][0], $Arr[0][1], $Arr[0][2]\n";