Basicamente, você quer essa estrutura
if grep -q "un-clean" /path/to/log_file.log ;
then
# put some command in case we find result is unclean
else
# if the output is ok, do something else
fi
Tudo o que isso faz é silenciosamente (sem imprimir na tela) verificar se há uma correspondência da string "impura" no arquivo. Se existe a parte if, caso contrário - fazemos mais parte.
Veja um exemplo:
$> if grep -q 'root' /etc/passwd ; then echo "This user exists" ; else echo "This user doesn't exist"; fi
This user exists
$> if grep -q 'NOEXIST' /etc/passwd ; then echo "This user exists" ; else echo "This user doesn't exist"; fi
This user doesn't exist
O que também pode ser feito é iniciar o comando que você quer do script, mas em segundo plano. Dessa forma, podemos ter o PID. Aqui está o que eu quero dizer
$> echo "HelloWorld" &
[1] 6876
Adicionar &
faz com que echo "HelloWorld"
seja executado em segundo plano, e nós temos o PID armazenado na variável $!
. Assim, podemos fazer algo como
some-command &
CMD_PID=$!
if grep -q "un-clean" /path/to/log_file.log ;
then
kill -TERM $CMD_PID
else
# if the output is ok, do something else
fi