title: bash: start multiple chained commands in background
body: <p>I'm trying to run some commands in paralel, in background, using bash. Here's what I'm trying to do:</p>
  
  <pre><code>forloop {
    //this part is actually written in perl
    //call command sequence
    print `touch .file1.lock; cp bigfile1 /destination; rm .file1.lock;`;
  }
  </code></pre>
  
  <p>The part between backticks (``) spawns a new shell and executes the commands in succession. The thing is, control to the original program returns only after the last command has been executed. I would like to execute the whole statement in background (I'm not expecting any output/return values) and I would like the loop to continue running.</p>
  
  <p>The calling program (the one that has the loop) would not end until all the spawned shells finish.</p>
  
  <p>I could use threads in perl to spawn different threads which call different shells, but it seems an overkill...</p>
  
  <p>Can I start a shell, give it a set of commands and tell it to go to the background?</p>