script de comparação

1. script de comparação

andre
negu

(usa Outra)

Enviado em 30/09/2011 - 10:47h

Gente isso ta certo??


#!/bin/bash

buildnew() {
ATUAL=`(rpm -qa | grep automatos2-st-lib | cut -c23,24)`
BUILD=`(rpm -qa | grep automatos2-st-lib | cut -c23,24)`
}
echo "$BUILD"

if [`$BUILD` -eq -o -gt `$ATUAL`]; then


echo "build atualizado `$BUILD`"

else

echo "build desatualizado $BUILD"

fi



sendo que $ATUAL é a ultima versão do build e o $BUILD é a versão do build instalada na maquina, quero que faça a comparação tipo.....


se $ATUAL for 48 e $BILD for 30, quero que ele diga que esta desatualizado. se for maior ou igual esta atualizado


  


2. Re: script de comparação

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/09/2011 - 13:33h

Não, não está!!!


#!/bin/bash

function buildnew() {
# perceba a diferença com o seu script: $
ATUAL=$(rpm -qa | grep automatos2-st-lib | cut -c23,24)
BUILD=$(rpm -qa | grep automatos2-st-lib | cut -c23,24)
}

# Faltou chamar a função para gravar os valores
buildnew
# Agora os valores foram guardados em variáveis

if [ "$BUILD" -gt "$ATUAL" ]
then
echo "build atualizado $BUILD"
else
echo "build desatualizado $BUILD"
fi



Boa sorte!


3. Re: script de comparação

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/09/2011 - 13:39h

A propósito... Nos passe um exemplo de saída dos comandos...
O -gt só funcionará de acordo com as expectativas se os valores forem inteiros.


4. Re: script de comparação

andre
negu

(usa Outra)

Enviado em 30/09/2011 - 13:39h

huuuuuuuuuummm tendi, então pra toda variavel nesse caso eu preciso chamar uma finction?


5. Re: script de comparação

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/09/2011 - 13:51h

Seria muito melhor para organizar seu código.


#!/bin/bash
# more: http://sekysu.blogspot.com

function _getAtual {
rpm -qa |
grep automatos2-st-lib |
cut -c23,24
}

function _getBuild {
rpm -qa |
grep automatos2-st-lib |
cut -c23,24
}

if [ "$( _getAtual )" -gt "$( _getBuild )" ]
then
echo 'atualizado'
exit 0

else
echo 'desatualizado'
exit 1
fi



Verifique as funções: ambas possuem o mesmo conteúdo/código, logo, este script sempre escreverá na tela: atualizado. A isso chamamos de falso positivo.






6. Re: script de comparação

andre
negu

(usa Outra)

Enviado em 30/09/2011 - 14:23h

a saida retorna isso:
[root@teste ~]#
48
ele traz a versão atual do buld, mas varia de cliente pra cliente.o ultimo é 48





7. Re: script de comparação

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/09/2011 - 14:42h

Então a lógica deste script está "furada".
:D

Sugiro que especifique com mais detalhes suas dúvidas em outro tópico, caso, é claro, ache conveniente para si.

Mas, segue uma sugestão. Preste atenção no código a seguir.



#!/bin/bash

_CONF_FILE='builds.config'

function _getBuildAtual {

grep '^BUILD_ATUAL_VERSION=' "${_CONF_FILE}" |
cut -d '=' -f 2

}




Perceba, então, que você pode usar um arquivo de configuração onde você colocará a versão actual desse tal de "build, cuja a sintaxe já está auto explicada na função acima.




8. Re: script de comparação

andre
negu

(usa Outra)

Enviado em 11/10/2011 - 10:07h

Uei o modelo que você me ajudou:

#!/bin/bash

function buildnew() {
# perceba a diferença com o seu script: $
ATUAL=$(rpm -qa | grep automatos2-st-lib | cut -c23,24)
}



BUILD=$(rpm -qa | grep automatos2-st-lib | cut -c23,24)


# Faltou chamar a função para gravar os valores
buildnew
buildold
# Agora os valores foram guardados em variáveis

if [ $BUILD -eq $ATUAL ]

then
echo "build atualizado, esta na versao $BUILD"

else

echo "build desatualizado, esta na versao $BUILD"

exit1

fi


porém ele guarda na variavel o build da maquina onde ele roda, eu consigo fazer com que..por exemplo...
eu tenho uma maquina atualizada com o ultimio build 48, e ele use esse "48" como referencia na variavel, mesmo em maquinas que estejam desatualizadas......???

ai caso sja atualizado para o "49" ele atualiza a variavel(sempre para maior, 48, 49, 50 e etc..) conforme for atualizado...(na cabeça a ideia é simples...pra explica é dificil....rsrrsrsrss)






9. Re: script de comparação

andre
negu

(usa Outra)

Enviado em 11/10/2011 - 10:53h

posso usa whilw tbm né??

#!/bin/bash

ATUAL=$(rpm -qa | grep automatos2-st-lib | cut -c23,24)

while ($ATUAL >= 48 )
do


if [ $ATUAL -ne $1]

then
echo "build atualizado, esta na versao $BUILD"

else
echo "build desatualizado, esta na versao $BUILD"


fi

done


10. Re: script de comparação

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 11/10/2011 - 20:42h

negu escreveu:

posso usa whilw tbm né??



#!/bin/bash

ATUAL=$(rpm -qa | grep automatos2-st-lib | cut -c23,24)

while ($ATUAL >= 48 )
do


if [ $ATUAL -ne $1]

then
echo "build atualizado, esta na versao $BUILD"

else
echo "build desatualizado, esta na versao $BUILD"


fi


Funciona ??? creio que não.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts