LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 731|回复: 0

【求助】perl编写一个可移植的检查磁盘空间的程序!

[复制链接]
发表于 2005-2-25 19:26:49 | 显示全部楼层 |阅读模式
我的代码是在Win2000下写的,目的是检查空闲磁盘空间大小,考虑到将来应用到Linux下,故考虑了可移植性:
我的代码如下:
  1. #!/usr/bin/perl

  2. sub freespace{
  3.     my(@dir,$free);
  4.         if($^O eq 'MSWin32'){
  5.         @dir=`dir`;
  6.        
  7.         $free=$dir[$#dir];
  8.         print $free;
  9.         my $pat="可用字节";
  10.         $free=~s/(\s+)([\d,]+).*([\d,]+)(\s+)$pat/$3/;
  11.         print $free;
  12.         $free=~s/,//g;
  13.         }elsif($^O eq 'linux'){
  14.                 @dir=`df -k .`;
  15.                 $free=(split(/\s+/,$dir[$#dir]))[3];
  16.             $free=$free*1024;
  17.                 }else{
  18.                 $free=0;
  19.                 warn "Cannot determine free space on this machine.\n";
  20.                 }
  21.                 return $free;
  22. }

  23. my $free=freespace();
  24. print $free;
复制代码


但在win2000下运行只取出了空闲空间的最后一个数字
如 :
5 个目录  1,280,499,712 可用字节

结果程序只输出2,
请问各位高手错在那里?我得正则表达式写的正确么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表