У меня есть два параллельных процесса, выполняющие сценарий оболочки, каждый будет время от времени печатать к stdout с помощью эха. Но иногда вывод может перепутанный. Существует ли способ взять эксклюзивное использование stdout, затем выпустить его?
Я не понимаю точно Вашего намерения, но я предполагаю, что у Вас есть два процесса, отправляющие их вывод в stdout, и Вы хотите контролировать только одного из них за один раз.
Мое предложение должно было бы иметь каждую запись процесса в свой собственный файл вместо stdout. Если Вы не хотите переписывать свой сценарий, можно было просто все произвести для процесса, перенаправленного с помощью> только для стандартного вывода или &> для всего вывода, включая stderr.
, Таким образом, Вы могли выполнить свое использование процессов:
$./proc1 &> proc1.out
$./proc2 &> proc2.out
Теперь, если Вы хотите контролировать вывод одного из процессов, используйте команду хвоста со 'следовать' опцией:
$ tail -f proc1.out
, Если Вы хотите видеть вывод от обоих процессов одновременно на stdout, используйте:
$ tail -f proc1.out -f proc2.out