time for i in `ls /tmp/chunk*`; do (cat $i | tr ' ' '\n' | sort | uniq > /tmp/line${i:10}) & ;done
bash: syntax error near unexpected token `;'
上述命令中的语法错误是什么?我还尝试使用{}
并使用;
结束了管道命令。但同样的错误出现了......
答案 0 :(得分:19)
如果您想在后台并行运行所有作业,则应将&
放在()
内。
time for i in `ls /tmp/chunk*`; do
(cat $i | tr ' ' '\n' | sort | uniq > /tmp/line${i:10} &)
done
答案 1 :(得分:19)
你可以加入&在护腕中:
time for i in `ls /tmp/chunk*`; do
{(cat $i | tr ' ' '\n' | sort | uniq > /tmp/line${i:10}) &};
done
答案 2 :(得分:11)
&安培;是一个分隔符,因此是多余的; I.E.删除最后一个;
for i in /tmp/chunk*; do tr ' ' '\n' <$i | sort -u > /tmp/line${i:10}& done