shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] checar variável


From: hpfn
Subject: Re: [shell-script] checar variável
Date: Sun, 31 Jan 2016 14:49:07 -0200

> Obrigado pelas respostas.
> 
> O dia está terminado difícil. Vou ver amanhã com mais calma e retorno.
> 

O script é bem simples. Ele roda após uma atualização
automática do Debian. Se houve uma atualização ele
atualiza o rkhunter.

Deixei como estava antes.

atual=$(grep "Packages that will be upgraded" 
/var/log/unattended-upgrades/unattended-upgrades.log| tail -n1)
# valor de atual
#2016-01-28 09:42:29,376 INFO Packages that will be upgraded: curl iceweasel 
iceweasel-l10n-pt-br libcurl3 #libcurl3-gnutls openjdk-7-jre 
openjdk-7-jre-headless
data=$(echo "$atual" | cut -d" " -f1)

# arquivo de log rotaciona. pode estar vazia
[ ! "$data" ] && data=0

# se atualizou hoje, atualiza rkhunter
if [[ "${data//-/}" -eq "$(date +%F | tr -d "-")" ]]
then
        echo "atualizando rkhunter"
        rkhunter --propupd
fi


> > $ data=
> > $ echo ${data:-0}
> > 0
> > $ data=1
> > $ echo ${data:-0}
> > 1

Boa lembrança, poderia adicionar 'tr -d "-" a variável data
e fazer
[ "${data:-0}" = "$(date +%F | tr -d "-")" ]

Funcionaria ?

> >     if [[ "$DATA" && "${DATA//-/}" -eq "$(date +%F | tr -d "-")" ]]
> >
> >     está errado. Aqui o cmd test ([[...]]) testa 2 cmd, que tem que ser
> >     executado antes do test e vc está priorizando só um. Talvez funcione
> >     se vc fizer:
> >
> >     [[ $([ -n "$DATA" ] && echo "${DATA//-/}") -eq "$(date +%F | tr -d
> >     '-')" ]]
> >

Dividindo em dois blocos, é isso ? Se aplica para qualquer
linguagem, certo ?


> >     OBS: Cuidado com os nomes de variável em letras maiúsculas. $DATA é
> >     uma variável de sistema em sistemas operacionais compatíveis com
> >     SVr4. Por causa de coisas assim, não uso variáveis em maiúsculas e
> >     desaconselho a todos usarem.

Anotado.


abraços,
-- 
Herbert Parentes Fortes Neto (hpfn)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]