Chinaunix
标题:
数组问题
[打印本页]
作者:
kernel69
时间:
2013-09-27 00:54
标题:
数组问题
本帖最后由 kernel69 于 2013-09-27 00:56 编辑
cat auto_ssh.pl
#!/usr/bin/perl -w
use strict;
use lib '/home/zhangguiliang/perl/lib/lib/perl5/site_perl/5.8.8/';
use Net::OpenSSH;
my @hostname = qw(192.168.2.11);
my $cmd1 = 'ls -l';
my $cmd2 = 'df -h';
for my $host ( @hostname ) {
my $ssh = Net::OpenSSH -> new( $host, timeout => 600 );
#my @out = $ssh -> capture( $cmd1 );
my @space = $ssh -> capture( $cmd2 );
print @space;
print '-' x 30 . "\n";
my @jboos_space = grep /jboss/, @space;
print $jboos_space[2]
}
$ ./auto_ssh.pl
Filesystem ɝ ӑԃ ¿ʓ`ӑԃ% 1Ӕص
/dev/sda9 2.0G 497M 1.4G 26% /
/dev/sda1 92M 13M 74M 15% /boot
none 2.0G 0 2.0G 0% /dev/shm
/dev/sda2 9.9G 4.3G 5.2G 46% /home
/dev/sda10 94G 40G 50G 45% /jboss_app
/dev/sda5 5.0G 43M 4.7G 1% /mysql
/dev/sda7 5.0G 43M 4.7G 1% /tmp
/dev/sda3 9.9G 3.0G 6.5G 32% /usr
/dev/sda6 5.0G 484M 4.2G 11% /var
------------------------------
Use of uninitialized value in print at ./auto_ssh.pl line 21.
复制代码
@jboos_space的内容为/dev/sda10 94G 40G 50G 45% /jboss_app加一个空格,问题是我访问$jboos_space[1],结果应该是94G,而运行结果是uninitialized,访问$jboos_space[0]结果是/dev/sda10 94G 40G 50G 45% /jboss_app,怎样修改才能访问$jboos_space[0]是/dev/sda10,$jboos_space[1]是94G,依次往后,谢谢
作者:
wenhq
时间:
2013-09-27 07:02
split ?
作者:
kernel69
时间:
2013-09-27 08:08
我也这么想的,
my @jboos_space = split /\s+/,grep /jboss/, @space;
复制代码
返回的值是个标题值啊,1
回复
2#
wenhq
作者:
yinyuemi
时间:
2013-09-27 08:36
回复
3#
kernel69
my @jboos_space = map{split /\s+/}grep {/jboss/} @space;
作者:
kernel69
时间:
2013-09-27 11:41
试试,有结果了,给你回复,
回复
4#
yinyuemi
作者:
kernel69
时间:
2013-09-28 19:12
测试OK,感谢大牛
回复
4#
yinyuemi
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2