Eu tenho lutado com esse problema durante toda a tarde e, depois de encontrar essa pergunta e ler várias páginas de manual, tive um pouco de ondas cerebrais. Acontece que redirecionar STDIN para /dev/null
age como uma solução alternativa e retorna a funcionalidade "normal" para less
:
php --rc PDO < /dev/null | less
ou
cat /dev/null | php --rc PDO | less
É, é claro, um problema horrível de uma solução alternativa, e eu não tenho conhecimento suficiente de canais e redirecionamento de fluxo no Bash para realmente entender o que causa o problema ou por que isso corrige isso, mas percebi que postar isso era melhor do que deixar essa questão totalmente sem resposta. Espero que alguém mais experiente do que eu possa lançar alguma luz sobre isso - idealmente com uma correção mais realista.
Meu único palpite é que php
está recebendo STDIN em vez de less
quando você digita comandos em less
, mas fico perplexo sobre por que esse comportamento é visto apenas no Ubuntu (confirmei que php --rc PDO | less
funciona bem no Sabayon, no CentOS e no Debian, além de invadir várias instalações diferentes do Ubuntu, incluindo aquelas atualizadas para o 11.10).
Atualizando para incluir alguns resultados de pesquisa relevantes que encontrei. Acontece que é um problema com a compilação do Ubuntu de php-cli
, por isso não deve afetar nenhum outro comando.
-
drush help | less
não funciona no Ubuntu 10.10+ (vídeo interno) | drupal.org - Bug # 322214 no php5 (Ubuntu): “php (via libedit using_history ()) incorretamente abre stdin ”