![在不同的线路上并行运行单行程序](https://linux22.com/image/218881/%E5%9C%A8%E4%B8%8D%E5%90%8C%E7%9A%84%E7%BA%BF%E8%B7%AF%E4%B8%8A%E5%B9%B6%E8%A1%8C%E8%BF%90%E8%A1%8C%E5%8D%95%E8%A1%8C%E7%A8%8B%E5%BA%8F.png)
因此,假设我有一个包含 URL 列表的数组,并且我想使用 GNU parallel 之类的工具来并行下载 URL。像这样的命令就可以解决问题。
parallel -u wget -qc --show-progress ::: "${URLs[@]}"
此命令的唯一问题是,当显示命令的进度时(特别是因为在-u
发生时显示输出而不是等待),命令的输出全部转到同一行。这会导致这样一种情况:当一个 wget 实例输出时,它会覆盖 tty 上前一个 wget 输出的进度。所以,我想知道如何同时让每个 wget 输出在它自己的行上?
答案1
parallel --ll wget -qc --show-progress ::: "${URLs[@]}"
--ll 选项处于 alpha 测试中,但在我的测试中有效。