Por que o GNU 'less' está mostrando apenas a saída do meu script de título em vez do conteúdo do arquivo?

1

Estou usando csh como meu terminal e tenho um script que é executado quando altero os diretórios que substituem o título da janela pelo diretório atual. Eu tenho que executar inicialmente no meu arquivo .cshrc , assim que ele irá mudar o título da janela em um novo shell.

Quando eu uso less para exibir um arquivo de texto no console, em vez do conteúdo do arquivo, vejo a saída desse script. Isso efetivamente torna less inútil.

    
por Ben Richards 19.03.2014 / 15:09

2 respostas

1

Seu problema é causado por ter o arquivo ~/.cshrc enviando coisas para o console, o que interfere na operação de less .

Uma maneira de resolver isso é verificar a existência de shells interativos antes de fazer qualquer coisa que afete o console ou altere a maneira como esses scripts seriam executados (por exemplo, configurando aliases para cd ).

if ($?prompt) then
    # Do things that affect interactive shells here
endif
    
por 19.03.2014 / 15:34
1

De acordo com esta FAQ para menos na página inicial do desenvolvedor, acontece que ter qualquer coisa que gere A saída para o console (que o script de título da janela faz) no arquivo .cshrc pode interferir na saída de less . Aparentemente less invoca o shell para abrir e visualizar arquivos, e uma vez que qualquer nova instância do shell executará automaticamente os comandos em .cshrc , qualquer que seja a saída do console que ocorra nesse passo, interferirá na operação da ferramenta.

A solução é remover a invocação do meu script do arquivo .cshrc . Posso colocá-lo no arquivo .login , mas há a ressalva de que qualquer nova invocação do shell não executará novamente os comandos desse arquivo.

    
por 19.03.2014 / 15:09

Tags