Это было полезно для меня, поэтому я бы добавил следующие детали:
Если вам нужно проверить два условия, одно из которых является состоянием выхода функции / команды, а другое, например, значением переменной, используйте это:
if func arg && [[ $foo -eq 1 ]]; then echo TRUE; else echo FALSE; fi