Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Flux com flightgear
Por goss
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Como lidar com variáveis retornadas pelo Expect - removendo CR do fim de linha
Linux user
Publicado por Carlos A. Parisotto em 22/03/2011

Login: carlosparisotto, 25388 pontos
[ Hits: 1888 ]

Como lidar com variáveis retornadas pelo Expect - removendo CR do fim de linha

O Expect é uma ferramenta que trabalha com a interação shell-usuário (pretendo explicar com mais detalhes em um artigo). É uma ferramenta sensacional, mas logo que comecei a trabalhar com ela me deparei com o seguinte problema:

A codificação do expect retorna dois caracteres de fim de linha: <CR> e <LF>, sendo assim eu não consegui fazer comparações com as variáveis. Por exemplo:

valor=`expect script.exp`
echo $valor

>>5

O script retornou o valor 5.

if [ `echo $valor` == "5" ];then
echo igual
else
echo diferente
fi

>>diferente

Tive que usar o `echo $valor`, pois o retorno é em texto e não em valor numérico. Mesmo a variável $valor estando igual a 5, o if não consegue comparar corretamente.

A solução encontrada para isso foi remover o caractere <CR> do fim da linha com o TR:

if [ `echo $valor | tr -d '\r' ` == "5" ];then
echo igual
else
echo diferente
fi

>>igual

Essa foi a ideia que tive para fazer funcionar, que serviu para o Expect, mas que pode servir para outros casos. Se alguém teve algum caso semelhante, com uma resolução diferente, podem postar aí.

Abraço.


Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada Variáveis compostas em shell script
   Dica Linux recomendada Verificar saída de comando. Será que meu comando deu erro?
   Dica Linux recomendada Economize energia, um bem precioso
   Dica Linux recomendada Variável de numero inteiro ou float
   Dica Linux recomendada Arrays no BASH

Comentários
Nenhum comentário foi encontrado.

Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.