Bash: se a condição para verificar se a data real existe como string no arquivo?

1

Em um arquivo, eu tenho uma string como essa, que é a data de hoje

Sa 4. Dez

O formato de data é assim

stringtoday='date +%Y-%m'

agora eu quero usar uma condição if para verificar se a data de hoje existe neste arquivo e se esse for o caso eu quero parar o script bash. se a data não estiver neste arquivo. o script deve ser executado. Como posso fazer isso?

    
por NES 04.12.2010 / 15:01

1 resposta

8

Algo como:

#!/bin/sh

DATE=$(date +%Y-%m)

if grep "$DATE" file >/dev/null; then
    echo yes
else
    echo no
fi

onde file é o nome do seu arquivo deve funcionar. Basicamente, ele usa grep para pesquisar o valor de $DATE no arquivo e ramifica dependendo se foi encontrado ou não (os códigos de saída de grep indicam isso, consulte man grep "STATUS DE SAÍDA" para obter mais informações ). Você pode usar if grep …; then exit 0; fi para sair do script se o texto for encontrado para obter o comportamento desejado.

    
por Iain Lane 04.12.2010 / 15:08