Eu acredito que isso vai fazer o que você quiser. Testado com o GNU grep.
mk_output=$(make) # add whatever make options you use
if printf '%s\n' "$mk_output" | grep -qF 'Nothing to be done for'
then
echo '"Nothing to be done for" was present in output'
else
echo '"Nothing to be done for" was NOT present in output'
fi
Nós capturamos a saída de make
, depois grep (opções silenciosas e fixas
string) para a string que você está procurando. Se encontrado, o status de saída
grep
é 0; se não encontrado, 1.
Reflexões:
make
geralmente gera muita saída, por isso, talvez seja melhor alterar
a primeira linha para:
mk_output=$(make (make options) | grep -qF 'Nothing to be done for')
Dessa forma, mk_output
não será tão grande.
Se você quiser ver a saída de make
em execução, bem como
capture-o, use tee
para capturar em um arquivo:
make | tee make_output
if grep -qF 'Nothing to be done for' make_output
then etc.