我尝试在bash的for循环中运行后台作业:
for i in $(seq 3); do echo $i ; sleep 2 & ; done
我收到错误:
bash: syntax error near unexpected token `;'
在zsh中,命令行可以正常工作。
答案 0 :(得分:97)
删除;睡了之后
for i in $(seq 3); do echo $i ; sleep 2 & done
顺便说一句,这样的循环最好用不正确的缩进写在单独的行上(如果你在shell脚本文件中写这个)。
for i in $(seq 3)
do
echo $i
sleep 2 &
done
答案 1 :(得分:33)
您可以将后台命令放入()
for i in $(seq 3); do echo $i ; (sleep 2 &) ; done