Você pode canalizar para uma expressão condicional como qualquer outro comando:
$ echo | wc -w | [ $(cat) -gt 0 ] && echo hi
$ echo "abc abc" | wc -w | [ $(cat) -gt 0 ] && echo hi
hi
Esta cat em $( ... ) substituição de comando para obter a entrada canalizada na linha de comando como se estivesse escrito lá, e então testa se é numericamente maior de 0 . O bloco [ ... ] inteiro retornará verdadeiro se estiver e, caso contrário, o contrário, para que você possa usá-lo com && como de costume.
Você também pode usar test por nome, em vez de [ :
$ echo "abc abc" | wc -w | test $(cat) -gt 0 && echo hi
Você pode evitar o processo cat com read;echo $REPLY , mas isso provavelmente não importa.
No Bash, isso funciona, e o cat é executado no lugar e hora certos dentro o pipeline , mas não em outros shells (incluindo zsh). Eu não sei se isso é explicitamente especificado comportamento, mas é estável em versões Bash pelo menos para 3.2, em ambos os modos POSIX e não-POSIX (macOS sh é Bash no modo POSIX). Minha leitura do POSIX é consistente com este sendo o resultado correto.