У меня есть минимальный HTTP-сервер, написанный на python (http://pastebin.com/mjLDk7Gk), который просто отвечает на каждый запрос GET со статусом 200 и телом "Done".
Если я сделаю
wget "http://localhost:9001" -O - -q
Done
Но если я пропущу -q:
wget "http://localhost:9001" -O -
--2015-01-12 15:28:20-- http://localhost:9001/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:9001... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified
Saving to: ‘STDOUT’
[<=> ] 0 --.-K/s D
[ <=> ] 4 --.-K/s in 0s
2015-01-12 15:28:20 (670 KB/s) - written to stdout [4]
#blank line here
В конце первой строки "строки состояния" стоит буква "D", фактически это первый символ желаемого результата. Я предполагаю, что вывод где-то потерян при обновлении терминала. Это также случается с более длинными телами ответа.
Еще одно наблюдение: если я перенаправлю вывод в файл, он снова работает:
wget "http://localhost:9001" -O - > /tmp/file
cat /tmp/file
Done
Это также происходит с очень широкими терминалами. "Строка состояния" растет, но в теле ответа остается только один символ.
Это ошибка или ошибка конфигурации где-то на моей стороне? Я получаю идентичное поведение с gnome-terminal и xterm (в Ubuntu 14.04.1 LTS).