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

如何将系统命令的结果存储在Perl变量中?

发布时间:2020-12-15 21:13:51 所属栏目:大数据 来源:网络整理
导读:$cat test.plmy $pid = 5892;my $not = system("top -H -p $pid -n 1 | grep myprocess | wc -l");print "not = $notn";$perl test.pl11not = 0$ 我想把结果,即11变成一个变量.我怎样才能做到这一点? 解决方法 从 Perlfaq8: 你很混淆system()和backticks(
$cat test.pl
my $pid = 5892;
my $not = system("top -H -p $pid -n 1 | grep myprocess | wc -l");
print "not = $notn";
$perl test.pl
11
not = 0
$

我想把结果,即11变成一个变量.我怎样才能做到这一点?

解决方法

从 Perlfaq8:

你很混淆system()和backticks(“)的目的. system()运行命令并返回退出状态信息(作为16位值:低7位是进程死亡的信号,如果有的话,高8位是实际退出值).反引号(“)运行命令并将其发送到STDOUT.

$exit_status   = system("mail-users");
    $output_string = `ls`;

有很多方法可以从Perl执行外部命令.最有意义的是:

> system():你想执行一个命令,不想捕获它的输出
> exec:你不想返回
调用perl脚本
> backticks:你想捕捉
输出命令
> open:你想要管道命令(as
输入或输出)到您的脚本

另见How can I capture STDERR from an external command?

(编辑:李大同)

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

    推荐文章
      热点阅读