在shell中批量启动几个计算

我有16个计算要做,我想批量启动它,以便同时使用我的机器的16个核心。 我想做一个这样的shell脚本:

#!/bin/ksh for i in `seq 16` do cd directory$i <batch command> done 

可能吗?

可以。 你只需要确保他们作为后台任务运行,如下所示:

 #!/bin/ksh for i in `seq 16` do cd directory$i <batch command> & done 

没有这个,它只会顺序地运行这个工作。 你也可以确保你等待他们完成以及使用wait

 #!/bin/ksh for i in `seq 16` ; do cd directory$i <batch command> & done wait # May depends on shell, bash/ksh waits for all 

不需要反引号(外部命令)

 #!/bin/ksh for d in dir{1..16}; do echo $d & done wait echo done 

btw schellcheck.net会说:

 Use $(..) instead of legacy `..`