Можно использовать замену процесса:
firefox <( echo 'hello, world
' )
firefox <( cat page_header.html contents.html footer.html )
firefox <( echo "Hello number "{1..23}"!
" )
Я думаю, что Вы хотите функцию прерывания, конкретно:
error_func()
{
echo 'An error occurred!'
exit 1
}
trap error_func ERR
Ошибки позже перейдут к функции. Это поддерживается, по крайней мере, ударом, zsh, и ksh.