armazenar retorno de script em variável [RESOLVIDO]

1. armazenar retorno de script em variável [RESOLVIDO]

rafa
araujo.rafaelde

(usa Debian)

Enviado em 03/09/2009 - 20:59h

pessoal estou com uma dúvida em shell.

seguinte ... tenho o arquivo 'checkMem' responsável por verificar o status da memória no host, que retorna o seguinte:

echo "informações sobre o status da memória"
exit $STATE_x

sendo que 'x' pode ser {OK (0) | WARNING (1) | CRITICAL (2) | UNKNOW (3)}

tenho outro arquivo 'event' ...
nesse arquivo preciso chamar o script 'checkMem' e armazenar o retorno em uma variável

+ ou - assim:

state=`./checkMem -w 75% -c 90%`

só que quando faço isso a variável 'state' recebe o valor de echo
(ou seja, "informações sobre o status da memória")
e não o retorno do script checkMem que poderia ser {0,1,2,3}

resumindo precisaria pegar o retorno como "STATE_OK", STATE_WARNING", ..., ou "STATE_UNKNOW" e armazernar
em 'state'.

seria isso.
obrigado ...


  


2. MELHOR RESPOSTA

Jeferson dos Santos
lordhulk

(usa Ubuntu)

Enviado em 06/09/2009 - 16:09h

Cara, não entendi bem o q vc queria...
Vc tem um script que sai dando os retornos 0 1 2 ou 3, certo?

na variavel state cv queria pegar esses valores, mas ao inves disso vc ta pegando o despejo do programa e não o codigo do exit.
Se for isso, tente algo assim

state=$(./checkMem -w 75% -c 90%| echo $?)

echo $? vai pegar o código de retorno do exit.
Outra dica, não use `programa` pois eles são fáceis de causar confusão, use $(programa). Ambos abrem um subshell porém a segunda forma é bem mais simples de se encontrar no meio de um script.

Abraços

3. :D

rafa
araujo.rafaelde

(usa Debian)

Enviado em 09/09/2009 - 18:25h

era bem isso mesmo que eu queria ...

desculpa a demora pra responder...

obrigado,
rafael






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts