grep
é o caminho a seguir, ele retorna 0 se uma correspondência for encontrada. Você não precisa realmente enviar a linha, então descarte a linha e use o teste. No seu caso, seria apenas
lastline=$(tail -n1 logfile)
if grep pattern <<<"$lastline" &>/dev/null; then
echo "yay, found pattern"
else
echo "darn"
fi
Observe a construção "aqui string" <<<
que apresenta a string como um arquivo para grep
ler e &>
que redireciona a saída padrão e a saída de erro (redirecionar para nulo neste caso). Padrão poderia ser "curtir" ou algo assim. Substitua os ecos com o seu tratamento personalizado.
No entanto, faria muito mais sentido apenas verificar se kernel_make
retorna 1 se falhar. Não há necessidade de analisar uma saída de log amigável (que provavelmente será alterada ou deixará de ser a última mensagem). Se esse for o caso (mais provável), eu acabei de fazer
kernel_make [...arguments...] && echo "yay" || echo "nay"
(ou uma declaração if, como no caso grep). E você provavelmente está familiarizado com a declaração exit
, que provavelmente usará no formulário exit 1
no caso de falha.
Se kernel_make
for a última linha do script, você nem precisa fazer nada ...