Utilização de IF, AND, OU e e alimentaçãop de variáveis [RESOLVIDO]

13. Re: Utilização de IF, AND, OU e e alimentaçãop de variáveis [RESOLVIDO]

cr0n
_di0

(usa FreeBSD)

Enviado em 04/09/2012 - 10:01h

Experimente:

if [ $temperatura -gt $tempmax];



  


14. Re: Utilização de IF, AND, OU e e alimentaçãop de variáveis [RESOLVIDO]

Ramon Rafael Bortholin
rbortholin

(usa Debian)

Enviado em 04/09/2012 - 10:08h

_di0 escreveu:

Experimente:

if [ $temperatura -gt $tempmax];


Gera o erro

: 29°C: integer expression expected vazio

o script está atualmente assim


#!/bin/bash

#Script para envio do resultado do comando hddtemp /dev/sda para o e-mail william.araujo@dthi.com.br e ramon.bortholin@dthi.com.br - Criado por Ramon Bortholin - 16/08/12.

#Criando e alimentando a variavel $temperatura
temperatura=$(hddtemp /dev/sda | cut -d: -f3)
tempmax="29"
data=$(date | cut -d: -f1,2,4)
hora=$(date +"%H")
manha=04
tarde=12
noite=17

if [ $temperatura -gt $tempmax ];
then

### Condicao para envio de email para o analista Ramon Bortholin, criado por Ramon Bortholin em 23/08/2012 ###
if [ $hora -ge $manha ] && [ $hora -lt $tarde ];
then
echo -e "Ramon, bom dia. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" ramon.bortholin@dthi.com.br

elif [ $hora -ge $tarde ] && [ $hora -lt $noite ];
then
echo -e "Ramon, boa tarde. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" ramon.bortholin@dthi.com.br

elif [ $hora -ge $noite ];
then
echo -e "Ramon, boa noite. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" ramon.bortholin@dthi.com.br

elif [ $hora -lt $manha ];
then
echo -e "Ramon, boa noite. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" ramon.bortholin@dthi.com.br

else

echo -e "ATENCAO !!! \n \nHouve algum erro na execucao do Script de temperatura do servidor DTHiSRV01 \n \nEntre em contato com a area de Infraestrutura DTHi \n \nRamon Bortholin - 11 96479-0269 " | mutt -s "ERRO NA EXECUCAO DO SCRIPT DE TEMPERATURA - DTHiSRV01" ramon.bortholin@dthi.com.br, william.araujo@dthi.com.br, jorge.gomes@dthi.com.br
fi

### Condicao para envio de email para o gerente William Araujo. Criado por Ramon Bortholin em 24/08/2012 ###

if [ $hora -ge $manha ] && [ $hora -lt $tarde ];
then
echo -e "William, bom dia. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" william.araujo@dthi.com.br

elif [ $hora -ge $tarde ] && [ $hora -lt $noite ];
then
echo -e "William, boa tarde. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" william.araujo@dthi.com.br

elif [ $hora -ge $noite ];
then
echo -e "William, boa noite. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" william.araujo@dthi.com.br

elif [ $hora -lt $manha ];
then
echo -e "William, boa noite. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" william.araujo@dthi.com.br

else

echo -e "ERRO NA CONDICAO " | mutt -s "Houve algum erro na condicao para controle de temperatura! \n \nEntre em contato com a area de TI DTHi \n \nRamon - 11 96479-0269" william.araujo@dthi.com.br
fi

### Condicao para envio de email para o analista Jorge Gomes. Criado por Ramon Bortholin em 24/08/2012 ###

if [ $hora -ge $manha ] && [ $hora -lt $tarde ];
then
echo -e "Jorge, bom dia. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" jorge.gomes@dthi.com.br

elif [ $hora -ge $tarde ] && [ $hora -lt $noite ];
then
echo -e "Jorge, boa tarde. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" jorge.gomes@dthi.com.br

elif [ $hora -ge $noite ];
then
echo -e "Jorge, boa noite. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" jorge.gomes@dthi.com.br

elif [ $hora -lt $manha ];
then
echo -e "Jorge, boa noite. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" jorge.gomes@dthi.com.br

else

echo -e "ERRO NA CONDICAO " | mutt -s "Houve algum erro na condicao para controle de temperatura! \n \nEntre em contato com a area de TI DTHi \n \nRamon - 11 96479-0269" jorge.gomes@dthi.com.br
fi

else
echo nada
fi










15. Re: Utilização de IF, AND, OU e e alimentaçãop de variáveis [RESOLVIDO]

cr0n
_di0

(usa FreeBSD)

Enviado em 04/09/2012 - 10:29h

Analisando o contexto da mensagem de erro, aquela variável $temperatura, obtém um valor em graus celsius, ou seja, 29º, você compara esse valor com um inteiro, retornando aquela mensagem de erro. Eu instalei o hddtemp e li no manual dele, que se você usar do parâmetro -n, além de retornar somente o número(temperatura) ele retorna um valor inteiro, assim esse parâmetro retira-se do simbolo da unidade do grau celsius. Portanto, ficaria parecido com isso:


temperatura=$(hddtemp -n /dev/sda)
tempmax=29




16. Re: Utilização de IF, AND, OU e e alimentaçãop de variáveis [RESOLVIDO]

Ramon Rafael Bortholin
rbortholin

(usa Debian)

Enviado em 04/09/2012 - 10:40h

_di0 escreveu:

Analisando o contexto da mensagem de erro, aquela variável $temperatura, obtém um valor em graus celsius, ou seja, 29º, você compara esse valor com um inteiro, retornando aquela mensagem de erro. Eu instalei o hddtemp e li no manual dele, que se você usar do parâmetro -n, além de retornar somente o número(temperatura) ele retorna um valor inteiro, assim esse parâmetro retira-se do simbolo da unidade do grau celsius. Portanto, ficaria parecido com isso:


temperatura=$(hddtemp -n /dev/sda)
tempmax=29



Agora foi !!! (eu acho)... só que criei uma nova varíavel só para a comparação.. pois não quero alterar o email... poderia até fazer a alteração na varíavel temperatura.. mas ai teria que mudar todo o texto.. ai achei melhor deixar assim ó


#!/bin/bash

#Script para envio do resultado do comando hddtemp /dev/sda para o e-mail william.araujo@dthi.com.br e ramon.bortholin@dthi.com.br - Criado por Ramon Bortholin - 16/08/12.

#Criando e alimentando a variavel $temperatura
temperatura=$(hddtemp /dev/sda | cut -d: -f3)
temperatura2=$(hddtemp -n /dev/sda)
tempmax="29"
data=$(date | cut -d: -f1,2,4)
hora=$(date +"%H")
manha=04
tarde=12
noite=17

if [ $temperatura2 -gt $tempmax ];
then

### Condicao para envio de email para o analista Ramon Bortholin, criado por Ramon Bortholin em 23/08/2012 ###
if [ $hora -ge $manha ] && [ $hora -lt $tarde ];
then
echo -e "Ramon, bom dia. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" ramon.bortholin@dthi.com.br

elif [ $hora -ge $tarde ] && [ $hora -lt $noite ];
then
echo -e "Ramon, boa tarde. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" ramon.bortholin@dthi.com.br

elif [ $hora -ge $noite ];
then
echo -e "Ramon, boa noite. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" ramon.bortholin@dthi.com.br

elif [ $hora -lt $manha ];
then
echo -e "Ramon, boa noite. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" ramon.bortholin@dthi.com.br

else

echo -e "ATENCAO !!! \n \nHouve algum erro na execucao do Script de temperatura do servidor DTHiSRV01 \n \nEntre em contato com a area de Infraestrutura DTHi \n \nRamon Bortholin - 11 96479-0269 " | mutt -s "ERRO NA EXECUCAO DO SCRIPT DE TEMPERATURA - DTHiSRV01" ramon.bortholin@dthi.com.br, william.araujo@dthi.com.br, jorge.gomes@dthi.com.br
fi

### Condicao para envio de email para o gerente William Araujo. Criado por Ramon Bortholin em 24/08/2012 ###

if [ $hora -ge $manha ] && [ $hora -lt $tarde ];
then
echo -e "William, bom dia. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" william.araujo@dthi.com.br

elif [ $hora -ge $tarde ] && [ $hora -lt $noite ];
then
echo -e "William, boa tarde. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" william.araujo@dthi.com.br

elif [ $hora -ge $noite ];
then
echo -e "William, boa noite. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" william.araujo@dthi.com.br

elif [ $hora -lt $manha ];
then
echo -e "William, boa noite. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" william.araujo@dthi.com.br

else

echo -e "ERRO NA CONDICAO " | mutt -s "Houve algum erro na condicao para controle de temperatura! \n \nEntre em contato com a area de TI DTHi \n \nRamon - 11 96479-0269" william.araujo@dthi.com.br
fi

### Condicao para envio de email para o analista Jorge Gomes. Criado por Ramon Bortholin em 24/08/2012 ###

if [ $hora -ge $manha ] && [ $hora -lt $tarde ];
then
echo -e "Jorge, bom dia. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" jorge.gomes@dthi.com.br

elif [ $hora -ge $tarde ] && [ $hora -lt $noite ];
then
echo -e "Jorge, boa tarde. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" jorge.gomes@dthi.com.br

elif [ $hora -ge $noite ];
then
echo -e "Jorge, boa noite. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" jorge.gomes@dthi.com.br

elif [ $hora -lt $manha ];
then
echo -e "Jorge, boa noite. \n \nA temperatura do HD esta por volta de $temperatura em $data \n \nAtenciosamente, \n \nEquipe de TI - DTHi" | mutt -s "Temperatura Do HD em $data =$temperatura" jorge.gomes@dthi.com.br

else

echo -e "ERRO NA CONDICAO " | mutt -s "Houve algum erro na condicao para controle de temperatura! \n \nEntre em contato com a area de TI DTHi \n \nRamon - 11 96479-0269" jorge.gomes@dthi.com.br
fi

else
echo vazio
fi



17. Re: Utilização de IF, AND, OU e e alimentaçãop de variáveis [RESOLVIDO]

cr0n
_di0

(usa FreeBSD)

Enviado em 04/09/2012 - 10:48h

Não precisava de uma segunda variável, evite consumir processamento extra, somente era necessário adicionar o simbolo da unidade celsius na string(seu texto), segue:



temperatura=$(hddtemp -n /dev/sda)

"...Temperatura Do HD em $data =$temperatura ºC"



Mas fica a seu critério.


18. Re: Utilização de IF, AND, OU e e alimentaçãop de variáveis [RESOLVIDO]

Ramon Rafael Bortholin
rbortholin

(usa Debian)

Enviado em 04/09/2012 - 10:51h

Sim.. foi oq disse..

Agora estou sem tempo de alterar todo o texto... mas vou fazer isso sim ! =]~.. apesar do comando ser simples, é sempre bom poupar processamento !

Mais uma vez obrigado pela dica !!!


19. Re: Utilização de IF, AND, OU e e alimentaçãop de variáveis [RESOLVIDO]

cr0n
_di0

(usa FreeBSD)

Enviado em 04/09/2012 - 10:53h

Beleza, disponha, vou me ausentar agora, qualquer coisa posta ai, abraço.


20. Re: Utilização de IF, AND, OU e e alimentaçãop de variáveis [RESOLVIDO]

Ramon Rafael Bortholin
rbortholin

(usa Debian)

Enviado em 04/09/2012 - 10:54h

Cara...

Aproveitando sua boa vontade...

Vc sabe me indicar um bom material para eu estudar para melhorar meus scripts, aprender mais e tal ? pode ser web, como pode ser livro também.. eu gosto de livros =]

Vlw !


21. Re: Utilização de IF, AND, OU e e alimentaçãop de variáveis [RESOLVIDO]

cr0n
_di0

(usa FreeBSD)

Enviado em 04/09/2012 - 11:00h

O Aurelio Marinho Jargas tem um site e bons livros voltados para shell script, segue o site com materiais e livros por ele escrito.

http://aurelio.net/shell/



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts