2011-03-08 7 views
8

Chcę móc używać klawiszy strzałek, gdy wyprowadzam dane wyjściowe ze skryptu php cli do mniej. W tej chwili php cli robi coś do terminala, który może być ustalona jedynie podczas wykonywaniaJak uzyskać mniej lub więcej rozpoznawania naciśnięć klawiszy podczas instalacji ze skryptu cli php?

!stty sane 

od wewnątrz mniej, co jest tuż ból!

znalazłem odniesienie do tego problemu @http://www.php.net/manual/en/features.commandline.php#90743 ale nie wydaje się znaleźć odpowiedź :-)

Każda pomoc jest mile widziana, chociaż problem ten plasuje się znacznie poniżej wielu innych problemów ;-)

Odpowiedz

8

Szukałem trochę podkręconego, aby to dokładnie zrobić. Obecnie moim najlepszym obejściem jest:

php blah.php </dev/null | less 

, która ma pożądany efekt, ale jest pita do wpisania. Wydaje się, że gdy PHP CLI wykryje stdin to tty, umieszcza to tty w trybie liniowym.

+0

myślę, że to bardzo akceptowalnym rozwiązaniem, ponieważ, chociaż jest to pita, to również łatwe do zapamiętania :-) – Michiel

+1

nie można po prostu zrobić 'PHP kojiro

2

Jeśli dodasz exec('stty cbreak'); do skryptu cli, naprawi to. (Przynajmniej, to nie dla mnie, modyfikując drush.php do tego.)

+0

Tę odpowiedź dostrzegłem dopiero teraz - wygląda to dokładnie tak, jak szukam - dzięki! – Michiel

+0

Dodałem jeszcze kilka szczegółów tutaj: http://stackoverflow.com/a/20341430/943279 To może być błąd PHP, a ja zawarłem informacje o mojej wersji, gdzie miałem problemy i gdzie nie w przypadku to naprawdę jest błąd PHP. –

0

Kolejne opcje to nieco bardziej czytelny (do mnie) to:

less -f <(php whatevz.php) 

Jest to również przydatne podczas próby rury wyjścia z PHP informacji flag

less -f <(php -i) 
Powiązane problemy