Передача вывода PHP в команду linux 'less' заставляет 'less' действительно работать. (CentOS 6.2, не было с CentOS 5.)
Когда я перенаправляю вывод из php в 'less', требуется нажимать клавишу ввода после каждой команды, даже после команды 'j' (команда для прокрутки вниз на одну строку). Кроме того, на экране появляется командная клавиша, и «меньше» не очищает экран.
Итак, после запуска:
$ php -r 'for ($i=0; $i<300; $i++) { print "$i\n";}' | less
и затем, набрав j (который обычно прокручивается вниз на одну строку), я вижу символ "j", появляющийся в нижней части экрана после символа «:». Нажатие клавиши ввода заставляет less окончательно "принять" команду j, и она действительно прокручивается, но теперь я вижу «:j» между двумя смежными строками вывода:
10
:j
11
При использовании less с эквивалентным выводом из python все нормально и less работает нормально:
$ python -c 'for i in xrange(1, 300): print i' | less
Что происходит и как мне это исправить?
Больше информации:
$ less --version
less 436
Copyright (C) 1984-2009 Mark Nudelman
less comes with NO WARRANTY, to the extent permitted by law.
For information about the terms of redistribution,
see the file named README in the less distribution.
Homepage: http://www.greenwoodsoftware.com/less
$ php --version
PHP 5.3.27 (cli) (built: Aug 26 2013 11:46:37)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
Я использую Terminal.app в Mac OS X, чтобы подключиться к ssh, а затем запускаю команду php.