代码之家  ›  专栏  ›  技术社区  ›  Jeffrey04 George

同时运行几个命令

  •  0
  • Jeffrey04 George  · 技术社区  · 16 年前

    我正在编写一个shell脚本,我希望这些命令同时运行

    find ./incoming/kontraktor/ -type f -name '*.html' | sort | awk 'NR % 3 == 1' | ./bin/foo.py -m 3 -b 1 | next_command >> log/foo_log.log 2>&1
    find ./incoming/kontraktor/ -type f -name '*.html' | sort | awk 'NR % 3 == 2' | ./bin/foo.py -m 3 -b 2 | next_command >> log/foo_log.log 2>&1
    find ./incoming/kontraktor/ -type f -name '*.html' | sort | awk 'NR % 3 == 0' | ./bin/foo.py -m 3 -b 3 | next_command  >> log/foo_log.log 2>&1
    

    是否可以使用&让他们同时跑步?如果可能的话,我可以在上述三个命令都执行完毕后运行以下命令来输出日志吗?

    tail log/foo_log
    
    2 回复  |  直到 16 年前
        1
  •  2
  •   John Kugelman Michael Hodel    16 年前

    wait

    wait: wait [n]
    如果没有给出N,则等待所有当前活动的子进程, 返回码为零。N可以是进程ID或作业

    瞧!

    find ./incoming/kontraktor/ -type f -name '*.html' | sort | awk 'NR % 3 == 1' | ./bin/foo.py -m 3 -b 1 | next_command >> log/foo_log.log 2>&1 &
    find ./incoming/kontraktor/ -type f -name '*.html' | sort | awk 'NR % 3 == 2' | ./bin/foo.py -m 3 -b 2 | next_command >> log/foo_log.log 2>&1 &
    find ./incoming/kontraktor/ -type f -name '*.html' | sort | awk 'NR % 3 == 0' | ./bin/foo.py -m 3 -b 3 | next_command  >> log/foo_log.log 2>&1 &
    wait
    tail log/foo_log
    
        2
  •  0
  •   Jeffrey04 George    16 年前

    this

    (find ./incoming/kontraktor/ -type f -name '*.html' | sort | awk 'NR % 3 == 1' | ./bin/foo.py -m 3 -b 1 | next_command >> log/foo_log.log 2>&1) &
    (find ./incoming/kontraktor/ -type f -name '*.html' | sort | awk 'NR % 3 == 2' | ./bin/foo.py -m 3 -b 2 | next_command >> log/foo_log.log 2>&1) &
    (find ./incoming/kontraktor/ -type f -name '*.html' | sort | awk 'NR % 3 == 0' | ./bin/foo.py -m 3 -b 3 | next_command  >> log/foo_log.log 2>&1) &
    wait