Wenn ich so etwas probiere
php -i | less
Less reagiert nicht auf Hotkeys, druckt sie aber so, als würde "q" in der Statuszeile angezeigt
:q
PageDown
:^[[6~
Drücken Sie die EINGABETASTE, um den Schlüsselcode "auszuführen" und weniger die Aktion auszuführen.
Piping trivial Kleinigkeiten funktionieren jedoch ...
Betriebssystem: Fedora 14
less
, was "etwas Seltsames" macht. Es wechselt zur Eingabeverarbeitung im nicht-kanonischen Modus. Natürlichphp
kann auch etwas unternommen werden , aber dies ist einfach ein spezieller Fall, bei dem nicht zwei Programme gleichzeitig mit dem Terminal interagieren, die verschiedene Terminal-Eingabemodi verwenden und erwarten, dass die Dinge funktionieren .less
sehr gut sein , etwas zu tun , seltsam sein, aber das ist ausstrace php -i
ohneless
:ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
icanon
) ist nicht "seltsam". Der kanonische Modus ist die Norm . Daher der Name....
und vielleicht liegt der Hinweis woanders. Aber warumphp -i
öffnet stdin überhaupt ? Es macht dasselbe seltsame Verhalten mitmore
(was auf meinem System kein Symlink oder Alias ist), aber interessanterweise nichtpg
oder (inkonsistent)most
. PHP macht das auch mitphp -r 'for ($i = 1; $i <= 100; $i++) { print "$i\n"; }' | less
. AWK, Perl, Python usw. zeigen diese Verrücktheit nicht. Fazit: PHP ist kaputt.