perl中反引号(``)以及system之间的不同

perl中反引号(``)以及system之间的不同

反引号(``)以及system都是perl中执行系统命令的方式,但是两者有较大的不同。  总体概括一下,在perl程序中“`$cmd`” 获取的是程序执行结果,而system($cmd)获取的是程序执行后的返回值。   详情参看如下示例: 

demo示例:

#!/usr/bin/perl use strict;
my ($cmd,$ret1,$ret2);
$cmd = "ls /tmp";
print "*************执行反引号结果*****************\n";
$ret1 = `$cmd`;
print "*************执行system结果*****************\n";
$ret2 = system($cmd);
print "*************反引号方式*****************\n";
print $ret1 ;
print "*************下面是system方式*****************\n";
print $ret2 ;

执行结果如下:

[root@mdw ~]# perl 20150325.pl
*************执行反引号结果*****************#反引号执行结果输出为空
*************执行system结果*****************#system将执行结果输出
dsp.war
edsSvc.war
gconfd-root
keyring-ap4Ph9
*************反引号方式*****************
dsp.war
edsSvc.war
gconfd-root
keyring-ap4Ph9
*************下面是system方式*****************
0[root@mdw ~]#

从上面的执行结果可以看出,当调用system命令的时候,系统会将执行结果输出到屏幕,并且将执行结果返回值(0或者非0)传给$ret2 ;  

然而反引号(``)将会把所有结果都保存到变量$ret1上,并且不会输出任何结果。



转自:https://blog.csdn.net/BiPerler/article/details/44631037


  • 发表于 2018-08-31 14:46
  • 阅读 ( 2994 )
  • 分类:perl

0 条评论

请先 登录 后评论
安生水
安生水

348 篇文章

作家榜 »

  1. omicsgene 700 文章
  2. 安生水 348 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. xun 82 文章
  6. 红橙子 78 文章
  7. rzx 75 文章
  8. CORNERSTONE 72 文章