加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl执行系统命令

发布时间:2020-12-16 00:13:09 所属栏目:大数据 来源:网络整理
导读:在Perl中,可以用system、exec、readpipe这三个命令来调用其他脚本、系统命令等。这三个命令的主要区别就是返回值。 1) 对于 system 这个函数来说,它会返回执行后的状态,比如说 ??? my @args = (“command”,“arg1″,“arg2″); ??? system(@args) == 0 ?

在Perl中,可以用system、exec、readpipe这三个命令来调用其他脚本、系统命令等。这三个命令的主要区别就是返回值。

1) 对于system这个函数来说,它会返回执行后的状态,比如说

??? my @args = (“command”,“arg1″,“arg2″);
??? system(@args) == 0
??? or die “system @args failed: $?”

可以查错。

2) 而对于exec这个函数来说,仅仅是执行一个系统的命令,一般情况下并没有返回值。exec只有在系统没有你要执行的命令的情况下,才会返回false值。

exec (‘foo’)?? or print STDERR “couldn’t exec foo: $!”;
??? { exec (‘foo’) }; print STDERR “couldn’t exec foo: $!”;

3) 当我们需要保存系统命令运行的结果,以便分析并作进一步的处理时,就要用到readpipe这个函数了。例如:

??? @result = readpipe( “ls -l /tmp” );
??? print “@result”;

会产生如下的结果:

??? drwxr-xr-x? 2 root?? root??? 4096 Mar 19 11:55 testdir

当然,你也可以把生成的结果放到一个文件里,以便写工作日志呀、发布报告呀。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读