2015-06-09 2 views
2

Есть ли способ запуска нескольких команд одновременно, но не двигаться, пока оба не закончены? Я пытаюсь использовать аналогичные инструкции для следующего, но для этого требуется много времени, и было бы лучше, если бы я мог запускать их одновременно (не могу использовать &, чтобы запустить его на фоне, так как на следующем этапе все выходные файлы)Bash - одновременно запускать несколько команд

sed -i 's/x/y/' file1 
grep 'pattern' file2 > file3 
+0

'(command)'. это запускает подоболочку. это многопроцессорная обработка. то вы можете вызвать 'wait' на обоих pid. взгляните на полный документ: http://tldp.org/LDP/abs/html/index.html. – HuStmpHrrr

+2

Вы можете использовать & и ждать – 123

ответ

1

Не совсем ответ, но несколько строк Makefile будет делать то, что вы хотите

file1: 
    sed -i 's/x/y' <someinput 

file3: file2 
    grep 'pattern' file2 > file3 

nextop: file1 file3 
    whatever you want to do next 

и сделать -j так, что задачи выполняются параллельно, когда это возможно

2

Вероятно, это то, что вы хотите:

sed -i 's/x/y/' file1 & 
grep 'pattern' file2 > file3 & 
wait 
Смежные вопросы