Página 1 de 1

Erro estranho no shell do linux

MensagemEnviado: 26 Jan 2009 07:24
por joao
Ola pessoal!

Eu estou com um estrnaho problema no linux do trampo. Na verdade é um ssh que eu faço para um servidor de outra empresa e essa máquina e deste modelo:
SunOS panther5 5.9 Generic_118558-39 sun4u sparc SUNW,Sun-Fire-V440

O que acontece é que toda vez que eu escrevo algo deste tipo: 2> ou >& o sistema se perde quando pressiono enter e acaba separando os comandos para 2 > e > & respectivamente.

Então, caso eu faça:

find . 2> /dev/null > /tmp/file.txt

Ele reclama:
ambiguous output redirect

pois na verdade, foi enviado:
find . 2 > /dev/null > /tmp/file.txt

O problema não acontece caso eu faça um pequeno script como este:
#!/bin/sh
find . 2> /dev/null > /tmp/file.txt


Alguma idéia do problema? Será que é no Ssh ou na configuração da máquina?

PS: A minha conta é meio tosca, não tenho acesso a várias coisas, então provavelmente não conseguiria mudar alguns arquivos de configuração que afete outros usuários também.

Obrigado,
Joao

MensagemEnviado: 26 Jan 2009 10:06
por xultz
Se ao fazer o script o problema não acontece, verifique primeiro a que o link /bin/sh se refere. Geralmente é um symlink para um executável, que pode ser o bash, o csh, etc. E verifique que shell vocẽ está rodando. Pode ser que o ssh chame um shell tipo csh e o script rode pelo bash, e pode ser que entre eles haja uma diferença de sintaxe.

Mas é só um palpite...

MensagemEnviado: 26 Jan 2009 10:28
por joao
Ola xults!

Olha, eu tentei achar o link para o /bin/sh mas não deu nada:
ls -la /bin/sh

Retornou que é um executável. Tentei abrir e realmente é um executável.

Eu sei que eu estou usando o tc shell, pois todas as minhas configurações estão no arquivo .tcsh.

Mas entendi a sua idéia. Então realmente o problema está no tc shell, já que via script está ok. Infelizmente não posso usar outro bash porque está já td configurado para o tc shell. Mas qualquer idéia é bem vinda.

[]'s

MensagemEnviado: 26 Jan 2009 17:39
por msamsoniuk
o sh e o bash sao o mesmo, soh que o bash eh a versao gnu com alguns extras, como maior consumo de memoria e bugs diversos, mas eh quase igual. e obviamente nao tem link no /bin/sh pq solaris eh derivado de bsd e nem sabe o q eh bash neh.

enfim, para se livrar do tsh crie um .tcshrc e dentro chame o /bin/sh ou o shell que vc gosta. qdo vc logar, ele vai rodar o seu shell preferido (dah um zoio em man tcsh para ver detalhes).

MensagemEnviado: 26 Jan 2009 19:14
por joao
Ola Marcelo,

O problema é que eu perco todas as configurações que eu fiz para o tc...
Por exemplo, chamei o sh no shell e quando entrei nele, perdi td que já tinha configurado mais os alias...

Na verdade as configurações eu até posso refazer, mas os alias são muitos e muito espalhados...

De qualquer maneira, valeu pela dica.

[]'s

MensagemEnviado: 26 Jan 2009 19:47
por msamsoniuk
vc usar o bash e criar um .bashrc, dae ele reconfigura tudo novamente! :) hehehe

nao eh mais facil pedir para o admin mudar seu shell para o sh ? :D