Что это делает?
prog -o 'arg' < progBefore 1>/dev/null 2> progAfter
Вызывает программу prog
, получает данные из файла progBefore
, передает stdout
в /dev/null
(который игнорирует это) и передает stderr
в файл progAfter.Вы используете перенаправление файлов, когда должны использовать каналы:
progBefore | prog -o 'arg' 2>&1 1>/dev/null | progAfter
A pipe (точнее, анонимный канал ), обозначенный |
, принимаетstdout
из программы слева и отправляет ее на stdin
программы справа.
2>&1
перенаправляет stderr
туда, куда указывает stdout
, обратите внимание, что порядокважно.