【问题标题】:Run the same program in many processes在多个进程中运行相同的程序
【发布时间】:2014-01-16 21:41:01
【问题描述】:

想要

我想在多个文件上运行相同的程序。我希望这同时发生在几个进程中。

示例

即给定一个程序foo 和数据文件data1.datdata2.datdata3.dat 我想写如下内容

$ map foo data{1,2,3}.dat

并让它等价于以下

$ foo data1.dat & foo data2.dat & foo data3.dat

问题

这个标准在 unix 工具集中吗?如果没有,那么完成它的简单 bash 脚本是什么?

【问题讨论】:

    标签: bash unix command-line concurrency process


    【解决方案1】:
    for i in *.dat ; do foo "$i" & done
    

    【讨论】:

    • 可能在“$i”之后添加“&”,因为 OP 想要并发。
    • 你能验证这是否有效吗?我尝试了以下$ for i in * ; do ls "$i" & ; done 并收到以下错误bash: syntax error near unexpected token ;'`
    • 是的,我知道& 会终止命令,但我认为“空”命令可以工作,无需进一步解释。显然,我错了...谢谢@that-other-guy,纠正了我的第二个错误。
    猜你喜欢
    • 2012-04-05
    • 2017-09-29
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    相关资源
    最近更新 更多