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

bash – 将exec的输出发送到文件perl

发布时间:2020-12-15 17:00:22 所属栏目:安全 来源:网络整理
导读:问题 在perl中运行exec时,我无法将输出重定向到文件. 我在exec中运行vlc但是因为我怀疑每个人都设置了我已经用下面的echo替换它,它显示了相同的行为示例. 我只对exec’command’,’args’格式的exec感兴趣,而不是生成shell的那个,因为它生成了一个带有vlc的
问题

在perl中运行exec时,我无法将输出重定向到文件.

我在exec中运行vlc但是因为我怀疑每个人都设置了我已经用下面的echo替换它,它显示了相同的行为示例.

我只对exec’command’,’args’格式的exec感兴趣,而不是生成shell的那个,因为它生成了一个带有vlc的子shell,它仍会打印以清除其他问题并将其彻底清除.

use strict;
use warnings;

my $pid = fork;
if (!defined $pid) {
    die "Cannot fork: $!";
}
elsif ($pid == 0) {
    exec "/usr/bin/echo","done";
}

试着

exec "/usr/bin/echo","done",">/dev/null";

正如预期的那样只打印“> / dev / null”,但值得一试.

exec "/usr/bin/echo done >/dev/null";

运行sh然后运行echo,在这里工作,但不是我在vlc的实际问题,我想我会包括,因为有人肯定会建议它.

当使用’command’,’args’到文件时,如何重定向此exec的输出?

额外

如需更多信息,请询问.

事实证明,您只需在exec之前更改文件描述符即可
use strict;
use warnings;

my $pid = fork;
if (!defined $pid) {
    die "Cannot fork: $!";
}
elsif ($pid == 0) {
    open STDOUT,">",'/logger/log' or die $!;
    open STDERR,'/logger/log' or die $!;
    exec "/usr/bin/echo","done";
 }

(编辑:李大同)

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

    推荐文章
      热点阅读