Vendo estranhos pontos de interrogação no shell bash

3

Eu notei algo estranho sobre nossos servidores RHEL7: no shell sempre há pontos de interrogação retornados, incluindo partes do texto. Mais ou menos assim:

rm file.txt
rm: remove regular file ?file.txt??

Ou isto:

rm 886- rm: cannot remove ?886-?: No such file or directory

Isso é normal?

Estou ssh-ing de um desktop Ubuntu 16.04 para os servidores RHEL7 e usando a tela. Esta poderia ser a fonte das diferenças?

    
por Sina 01.11.2016 / 20:49

1 resposta

3

rm está tentando exibir um caractere que seu terminal não suporta. Isso é um sinal de que suas configurações de localidade estão erradas, especificamente LC_CTYPE . A variável de ambiente LC_CTYPE deve ser definida pelo emulador de terminal e não alterada por nenhum script, como .profile ou .bashrc .

Você indica que está exibindo a tela. Se você iniciou a sessão de tela em uma localidade e anexar a ela em outra localidade, a tela converterá caracteres não suportados para ? . Não é possível alterar a configuração de localidade em aplicativos já em execução, como o shell que você está executando nessa janela - a maioria dos aplicativos não tem suporte para alterar as configurações de localidade na hora. Você pode fazê-lo no shell definindo a variável LC_CTYPE . Para ver o que seu terminal espera, imprima o valor de LC_CTYPE antes de anexar à sessão de tela.

Para poupar dores de cabeça, adote configurações de localidade consistentes em todos os lugares. Atualmente, o UTF-8 é o padrão em todos os lugares, qualquer outra codificação deve ser usada apenas para compatibilidade com aplicativos ou dispositivos mais antigos.

    
por 02.11.2016 / 01:13