[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)