LINUX.ORG.RU
ФорумAdmin

последовательное и параллельное выполнение команд в Bash


0

0

Задача: есть список команд bash, разбитых по группам. Внутри группы команды выполняются параллельно (запускаются одновременно), группы выполняются последовательно, следующая стартует после выполнения всех команд в предыдущей.

Пробовал так a&b&c;d&e&f; - в случае если "с" завершилась раньше чем, "а" и|или "b", то стартует группа (d, e, f,) то есть нарушается условие задачи. Подскажите, как бы это нормально сделать. Спасибо.


Ответ на: комментарий от madcore

если это ответ, то не могли бы Вы написать "man ...", потому что термин мне не понятен.

K-Vrat
() автор топика

Например, так:

(sleep 5 & sleep 1 & echo "first") 200>&1 | cat; echo second

Правда, если кто-то закроет 200-й файловый дескриптор, то про него всё же "забудут".

Естественно, вместо echo second может стоять вторая такая же конструкция, и т.д.

lodin ★★★★
()

каждая программа из первой группы должна в какой-нибудь временный файлик в /tmp написать единичку. вторая группа начинает выполняться при достижении нужного количества единичек в файле. костыль, но работать будет.

Komintern ★★★★★
()
Ответ на: комментарий от sdio

обрати внимание что предыдущий оратор написал правильно что man bash раздел wait

man wait - это немножко другое относящееся к систеным вызовам - хоть и из этой же темы

http://wiki.opennet.ru/ShParallel - некоторые нъюансы wait есть тут

Astin
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.