Я хочу поместить вывод моей программы в файл. Я набрал следующее:
./prog > log 2>&1
Но в файле «log» ничего нет. Я использую Ubuntu 11.10 и оболочкой по умолчанию является bash.
Кто-нибудь знает причину этого И как я могу отладить это?
script -c "/path/prog" /path/log.txt
Иногда перенаправление оболочки не работает (особенно - когда одна оболочка порождает другую, я думаю :). Выше приведено общее решение, которое просто захватывает весь вывод оболочки и помещает его в файл. В вашем случае это также должно работать, так как вы ожидаете вывод на stdout / stderr.
это работало здесь, когда один ./prog 2>&1 >log.txt
, не работал бы должным образом:
./prog 2>&1 |cat >log.txt