php - 一次执行多个命令

标签 php python linux perl

我正在尝试用 Perl 编写一些东西(但我也很高兴使用 Python 或 PHP 来做同样的事情):

  • 获取列表(例如文件或 URL)

  • 添加额外的系统命令(例如 cp)

  • 在总共一千个命令的列表中最多执行十个这样的命令

  • 等待 10 个槽位之一成为并开始一个新过程,从而遍历 1000 个元素。

我现在正在走捷径,使用反引号来执行 Perl 中的命令,但如果有更好的方法来实现这一点,我将非常感激。

最佳答案

您应该展示您所写的内容,否则我们无法知道什么可能是“更好的方法”

您或许应该看看 Parallel::ForkManager 。使用该模块,您的程序可能看起来像这样

这段代码缺少很多东西,最重要的是use strictuse warnings 'all',以及@list的声明和填充。我相信你能填空

注意,10个并行进程的限制是模块规定的,"..."必须自己填写作为目标路径。最好在 Perl 中做您需要的事情,而不是仅仅为了调用 cp,所以我参与了 File::Copy相反

use Parallel::ForkManager ();
use File::Copy 'copy';

my $pm = Parallel::ForkManager->new(10);

for my $file ( @list ) {

    next if my $pid = $pm->start;

    # Child code

    copy $file, "...";
    $pm->finish;
}

关于php - 一次执行多个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38264461/

相关文章:

php - 你能在 INSERT 查询之后获取 fetch_assoc() 吗?

php - 从所有列中选择不同的值

java - 使用 apache 的 httpclient 库上传文件不起作用

linux - 接收 HTTP GET 请求并触发操作的最简单方法是什么?

java - JVM 9调用 "undefined reference"自定义成员函数报错 "class os"

php - 无法获得我想要的 max 结果(类似)

python - 如何锁定 django 命令以进行单次运行。 Django 。 Python

python - 合并两个数据框,但仅显示一条记录上的合并数据

python - 如何计算列表中唯一值的出现次数

php - 使用 PHP 脚本运行 shell 命令