stty:: argumento inválido

3

Estou fazendo telnet em uma máquina Solaris e estou recebendo o erro acima com meus scripts. Eu percebo que este é um problema comum, e a solução é verificar a linha 'stty erase ^ H' dentro do meu perfil, mas não consigo encontrá-lo.

.profile não tem nenhuma referência a stty, e eu não tenho um .cshrc em lugar algum. Eu executei um grep no meu diretório home, mas não consegui nada.

Existe outra fonte deste problema? Todas as soluções on-line se referem a .profile ou .cshrc. Obrigado.

    
por noisesolo 15.03.2011 / 14:49

4 respostas

0

Eu tive isso, foi um stty no .kshrc. Lembre-se que o .kshrc é originado em todos os scripts do ksh, interativos e não interativos. Se você executar um script, stty ainda será acionado, tente trabalhar em stdin, que é um arquivo (não um tty agora) e falhe com um erro.

    
por 15.03.2011 / 20:55
1

Para rastrear seu perfil, tente invocar seu shell de login com um nome que comece com - e com a opção -x para que seja impresso. Para descobrir qual é o seu shell de login, execute getent passwd $USER ; seu shell de login é o último campo na linha (geralmente /bin/something ). Para chamar o shell com um nome começando com - , crie um link simbólico cujo nome comece com - e execute isso. Por exemplo, se seu shell de login for ksh:

ln -s /bin/ksh ./-ksh
./-ksh -x
rm ./-ksh

Não tenho certeza se isso funcionará com o csh. Se você não encontrar nada interessante, procure em /etc e seus arquivos de ponto:

grep stty /etc/* ~/.* 2>/dev/null
    
por 15.03.2011 / 21:59
0

Da página do manual do csh:

A login shell begins by executing commands from the system files /etc/csh.cshrc and /etc/csh.login. It then executes commands from files in the user's home directory: first ~/.tcshrc (+) or, if ~/.tcshrc is not found, ~/.cshrc, then ~/.history (or the value of the histfile shell variable), then ~/.login, and finally ~/.cshdirs (or the value of the dirsfile shell variable) (+). The shell may read /etc/csh.login before instead of after /etc/csh.cshrc, and ~/.login before instead of after ~/.tcshrc or ~/.cshrc and ~/.history, if so compiled; see the version shell variable. (+)

Portanto, há alguns arquivos em que você pode encontrar essa linha

    
por 15.03.2011 / 18:23
0

Você também pode usar tty para testar tty: tty -s && stty erase ^H .

O código de retorno de

tty -s especifica se a conexão atual é tty ou não.

    
por 23.01.2013 / 20:55