我正在尝试使用 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 的不同线程,但这似乎有点矫枉过正......
我可以启动一个 shell,给它一组命令并告诉它进入后台吗?