Обсуждение статьи тематического каталога: Код возврата в shell при использовании pipe. (pipe shell err...Ссылка на текст статьи: http://www.opennet.me/base/dev/shell_pipe_err.txt.html
Ващета для конвейра из 2 команд есть такая возможность. Легко догадаться, что не без изголятельств. В стандартном Борновском шелле будя работать. А вот csh в пролёте.exec 3>&1
status=`((cmd1 2>&1 1>&3 3>&- 4>&-; echo $?) | cmd2 1>&2 3>&- 4>&-) 4>&1`За подробностями обращайтесь к книге "инструментальные средства ЮНИКС".
Если команд больше, то я бы порекоммендовал каждую контролировать отдельно, сделав для нее обёртку из сценария, и запусать их в фоновом режиме параллельно.
Взаимодействие же этих команд осуществлять через именнованные каналы.