Теперь, это на самом деле не работает, потому что он думает, что я grep myprocess.exe > output.log
вместо myprocess.exe
Неверно.Все должно быть хорошо.В первом примере выполняется конвейер с stdout
, установленным для вашего терминала (таким образом, вы видите вывод, но ничего не записывается в файл).Во втором примере выполняется конвейер с stdout
, установленным на output.log
(таким образом, вы не видите вывод, но он будет идти прямо в вашем файле).
Если вы хотите, чтобы вывод записывался в оба, вынужен другой процесс, который получает stdout
вашего предыдущего конвейера как stdin
и дублирует его.Например:
previous_pipeline | tee output.log
tee
выведет на стандартный вывод то, что он получает на stdin
(то есть для stdout
, все то же, что и раньше), но дополнительно откроет другой файл (указанный как cmdline arg) и напишите копию.