为什么“&;”语法无效?

问题描述 投票:1回答:1

我试图在终端上运行for循环,我希望将每次迭代发送到后台进程,以便所有这些循环同时运行。

以下是逐个运行的命令

for i in *.sra; do fastq-dump --split-files $i ; done  # ";" only

我突出了分号。

同时运行这个工作

for i in *.sra; do fastq-dump --split-files $i & done  # "&" only

但这会产生错误

for i in *.sra; do fastq-dump --split-files $i & ; done  # "& ;"

如果有人解释这里发生的事情会很好。我知道这应该用shell脚本方式编写,并有适当的缩进,但有时我只有这个命令才能运行。

bash for-loop syntax
1个回答
6
投票

&;都终止了它们之前的命令。

你不能写& ;比编写; ;& &更多,因为该语言只允许命令终止一次(并且不允许将零字列表作为命令)。


因此:for i in *.src; do fastq-dump --split-files "$i" & done完全正确,并且不需要额外的;

© www.soinside.com 2019 - 2024. All rights reserved.