Другие ответы верны и, вероятно, решают возможную проблему XY, но не отвечают на заголовок вопроса.
Да, в трубе можно использовать «если». Например:
cd /tmp
touch a1 a2 a3
ls # results a1 a2 a3 systemd-private...
ls | grep ^a | if grep a1; then echo yes; done
приводит к:
a1
да
и
ls | grep ^a | if grep -e a1 -e a2; then echo yes; done
выходы
a1
a2
да
Что здесь происходит? То, что конвейер выполняется нормально, потому что «если» выполняет свое условие. После того, как конвейер завершен, «if» все еще живо, получает результат выхода из своего аргумента и выполняет то, что ему предлагается (здесь «echo yes», только если grep действительно нашел какое-либо соответствие).
Чтобы получить еще одно доказательство:
ls | grep ^a | if grep a4; then echo yes; done
не приводит к печати ничего, ничего из стандартного вывода и, что более важно, никакое «эхо да» не было выполнено.
Это может быть в некоторых случаях полезно сделать что-то в конце обработки, но я сомневаюсь, что это может иметь много других применений.