if ! grep -Evq 'accepting|idle' /tmp/lpstat-Final.log; then
status=0
statustxt=OK
else
echo 'Something found'
fi
O principal aqui é que grep não produzirá nenhuma saída se você usar -q . Isso significa que usar uma substituição de comando não capturará nada ( $logcheck em seu código estará vazio). Em vez disso, usamos o status de saída do utilitário para determinar se algo foi encontrado ou não.
Estou usando -E aqui para tornar a expressão regular mais bonita; também é necessário para alternação (alteração com \| em uma expressão regular básica é uma extensão, suportada por, por exemplo, GNU grep ).