所有主要操作系统的shell脚本中的并行for循环

6ioyuze2  于 2023-05-01  发布在  Shell
关注(0)|答案(1)|浏览(106)

我用一个shell脚本来编译多个。tex文件自动。但是按顺序编译它们需要非常长的时间,特别是因为我需要多次编译它们才能得到正确的输出。下面是一个简短的片段:

#!/bin/bash
for file in *.tex
do
    pdflatex ...
done

我尝试了一个解决方案与xargs,但我被告知,这不能运行在macOS上。可悲的是,我没有找到一个解决方案,适用于所有主要的操作系统(Windows/ms-dos,macOS,Linux/unix)。你能给予我一个解决办法吗?我只使用Linux,不能测试其他系统,但它必须在它们上工作。

gpfsuwkq

gpfsuwkq1#

我当时的想法是:为什么不使用make?然后,您可以像这样在8个核心上运行所有作业:

make -j8

另一方面,您可以在后台启动每个进程。但是,您无法控制要使用的核心数量,除非您付出更多努力:

#!/bin/bash
for file in *.tex
do
  pdflatex ... "$file" &
done

相关问题