Как получить меньше или больше, чтобы распознать нажатия клавиш при конвейерном из скрипта CliPP? - PullRequest
8 голосов
/ 09 марта 2011

Я хочу иметь возможность использовать клавиши со стрелками, когда я направляю вывод из скрипта php cli в less. В настоящий момент php cli делает что-то с tty, что может быть исправлено только при выполнении

!stty sane

изнутри меньше, что является правильной болью!

Я нашел ссылку на эту проблему @ http://www.php.net/manual/en/features.commandline.php#90743, но не могу найти ответ: -)

Любая помощь приветствуется, хотя эта проблема намного ниже многих других проблем; -)

Ответы [ 3 ]

8 голосов
/ 03 апреля 2011

Я искал какой-нибудь твик, чтобы сделать именно это.Прямо сейчас мой лучший обходной путь:

php blah.php </dev/null | less

, который дает желаемый эффект, но это лаваш, чтобы печатать.Кажется, что когда PHP CLI обнаруживает, что stdin является tty, он помещает этот tty в режим строки.

2 голосов
/ 20 июня 2011

Если вы добавите exec('stty cbreak'); к вашему скрипту cli, это исправит это. (По крайней мере, мне это нужно, для этого нужно изменить drush.php.)

0 голосов
/ 25 февраля 2016

Еще один вариант, который немного более читабелен (для меня):

less -f <(php whatevz.php)

Это также полезно при попытке передать вывод информационного флага PHP:

less -f <(php -i)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...