Como o código de saída retornado por sudo ufw status
é sempre 0, você precisa apenas de grep
para o valor de status:
$ sudo ufw status
Status: inactive
$ sudo ufw status | grep -qw active
$ echo $?
1
Para funcionar corretamente, você precisa usar a opção -w
, de man grep
:
-w, --word-regexp
Select only those lines containing matches that form whole
words. The test is that the matching substring must either be
at the beginning of the line, or preceded by a non-word
constituent character. Similarly, it must be either at the end
of the line or followed by a non-word constituent character.
Word-constituent characters are letters, digits, and the
underscore.
-q
é apenas o modo silencioso, nada é gravado na saída padrão