Crie as linhas como tal:
(command1 file1_input; command2 file1_output) &
(command1 file2_input; command2 file2_output) &
...
E cada linha executará seus dois comandos em seqüência, mas cada linha será bifurcada como trabalhos paralelos em segundo plano.
Se você deseja que o segundo comando seja executado somente se o primeiro comando for concluído com êxito, altere o ponto-e-vírgula para &&
:
(command1 file1_input && command2 file1_output) &
(command1 file2_input && command2 file2_output) &
...