Я запускаю скрипт python, который производит определенный вывод, когда я запускаю его в подробном режиме. Когда я подключаю вывод к меньшей утилите, выход находится в другом порядке. Для справки, сценарий, если не совсем, почти так:Почему меньше изменяется порядок вывода?
http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/change-svn-wc-format.py
В частности, я получаю «данные для следующего поля (ов)» сообщение, и когда я запускаю его без перенаправив вывод меньше, это сообщение появляется последним. Когда я делаю вывод на меньшее, вывод таинственным образом появляется первым.
Может ли кто-нибудь объяснить это?
Я установил, что сообщение об ошибке отправляется в stderr, в то время как подробные сообщения отправляются в стандартный вывод. Тем не менее, даже когда я это делаю:
./svnfixversion ./ 1.5 --verbose 2>&1 | less
выход отличается от того, когда я просто оставляю | Меньше. Если stderr перенаправляется на stdout, не менее важно сохранить заказ?
'less' сохраняет заказ, который он получает; однако нет никакой гарантии, что оболочка чередует стандартную ошибку и стандартный вывод при записи в трубу в первую очередь. – chepner