我试图运行一些命令在paralel,在后台,使用bash。这里是我想做的:
forloop { //this part is actually written in perl //call command sequence print `touch .file1.lock; cp bigfile1 /destination; rm .file1.lock;`; }
反引号(“)之间的部分产生一个新的shell,并连续执行命令。事情是,对原始程序的控制只有在最后一个命令执行后才返回。我想在后台执行整个语句(我不期望任何输出/返回值),我想循环继续运行。
调用程序(有循环的程序)不会结束,直到所有的生成shell完成。
我可以使用perl中的线程来生成不同的线程调用不同的shell,但似乎一个overkill …
我可以启动一个shell,给它一组命令,并告诉它去背景?
我没有测试这个,但如何
原文链接:/bash/390311.htmlprint `(touch .file1.lock; cp bigfile1 /destination; rm .file1.lock;) &`;
括号意味着在子shell中执行,但不应该伤害。