[已解决]aix下perl调用awk print问题

[已解决]aix下perl调用awk print问题

想用perl 程序调用aix shell得到java进程的paging space的数值,aix shell下执行svmon -Pt15|grep java|awk '{print $3}'得到225153,而用perl执行相同代码却得到
42242 java            225153     2843     1270   222650      N     Y     N
0

从上面结果看,awk没有被执行.
perl代码如下:

        my  $line1 =system("svmon -Pt15|grep java|awk '{print $3}'");
        print $line1;


但我确定perl是可以调用awk的,以前用telnet模块调用类似的语句,是可以得到正确结果的,上面代码有什么问题么?(请不要用替代方法,我只想知道问题出在哪了)

谢谢~
========================================================================================================
问题已经解决了.


QUOTE:
原帖由 ynchnluiti 于 2009-1-12 16:39 发表

用``或qx, 里面的$前面加\

加了\就OK了,多谢!~
把system也改成readpipe了,thanx again.
代码如下:
====================================================================================
         my  $line1 =readpipe("svmon -Pt15|grep java|awk '{print \$3}'");  #如果用system(...)$line1将一直为0
          print $line1;
  if ($line1 >121000) {           #当java使用过多内存的时候,呵呵...想怎么处理它就随你便了,哈哈哈
          print "Hi this is in the loop $line1\n";
  }
====================================================================================



QUOTE:
原帖由 check1234 于 2009-1-12 16:17 发表
想用perl 程序调用aix shell得到java进程的paging space的数值,aix shell下执行svmon -Pt15|grep java|awk '{print $3}'得到225153,而用perl执行相同代码却得到
42242 java            225153     2843     ...

system返回的是程序的退出状态
$ 在 "" 中需要转义。


QUOTE:
原帖由 ynchnluiti 于 2009-1-12 16:21 发表

system返回的是程序的退出状态

嗯,应该用 `` or qx//


QUOTE:
原帖由 MMMIX 于 2009-1-12 16:23 发表

嗯,应该用 `` or qx//

式了,还是不行.


QUOTE:
原帖由 check1234 于 2009-1-12 16:35 发表

式了,还是不行.

用``或qx, 里面的$前面加\



QUOTE:
原帖由 MMMIX 于 2009-1-12 16:22 发表
$ 在 "" 中需要转义。

如何转呀?


QUOTE:
原帖由 ynchnluiti 于 2009-1-12 16:39 发表

用``或qx, 里面的$前面加\

加了\就OK了,多谢!~

        my  $line1 =system("svmon -Pt15|grep java|awk '{print \$3}'");
        print $line1;