有没有办法使用单个命令创建一个进程的 10 个实例(例如是)?
$instantiate 10 yes
答案1
像下面这样的东西可以吗?这假设 bash(用于大括号扩展)和 GNU 并行。
parallel -N0 -j0 -u yes ::: {1..10}
该-j0
设置是为了确保启动与参数一样多的进程,并且-u
(ungroup) 在那里,以便每个进程的输出在可用时立即打印(这对于 的情况很重要yes
,因为它的输出是无限的) 。-N0
防止将参数插入到命令行中。
答案2
@dhag 当然有一个一行答案,但语法让我眼睛受伤。 :)
由于您要求单个命令,并且 shell 认为 for-do-done 是单个(复合)命令,因此我觉得这个更具可读性的版本是合理的:
for i in {1..10}; do yes &; done
请注意,某些 shell 会自动执行nice(2)
后台作业,因此如果这是一个问题,那么这不是最佳解决方案。