2

Я хочу запустить два исполняемых файла на переднем плане, набрав одну строку кода или запустив сценарий оболочки. Эти исполняемые файлы просматривают каталог и перекомпилируют некоторый код при выводе своего состояния на стандартный вывод.

Я хочу, чтобы стандартный вывод был представлен так же, как следующие два файла в 'tail', вот так:

tail -f foo.txt -f bar.txt

==> foo.txt <==
Something

==> bar.txt <==
Something else

Когда что-то меняется, оно печатает имя файла перед печатью вывода. Он печатает имя файла только тогда, когда необходимо указать, что выходные данные поступают из другого файла.

2 ответа2

1

Поскольку эти два исполняемых файла записывают в стандартный вывод, вы можете просто tail файлы, созданные путем подстановки процесса:

tail -f <( executable_one ) <( executable_two )

(Требуется только один -f кстати. Это глобальная опция, а не то, что вам нужно указывать для каждого файла.)

Каждый из двух исполняемых файлов запускается отдельно, а его выходные данные записываются и перенаправляются в дескриптор файла, который передается в tail . В выводе имена файлов будут выглядеть примерно так: «/dev/fd/63». К сожалению, я не знаю, как получить хвост, чтобы использовать альтернативное имя (например, с помощью grep и параметра --label ).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .