On Fri, Jan 26, 2007 at 03:59:51PM +0300, Artem Chuprina wrote: > >> { cmd1 || error=1 }|cmd2 > >> > >> if test "$error" = 1; then ... > AGG> Вот сразу видно, что ты даже не пробовал запускать. > AGG> Во-первых ошибка синтаксическая, во-вторых, команда перед перед пайпом > AGG> запустится в сабшелле и после пайпа error будет неопределен. > > А вот не надо грязи. {} - это в том же процессе. В отличие от (). > Другое дело, что это опять не чистый sh, а в более других шеллах есть > более прямые методы.
Там после {} еще и | стоит. Так что fork придется для субшелла сделать. Невозможно в одном шелле иметь два разных stdin/stdout _одновременно_. Как решить задачу без выполнения команд в background и именованной трубки - не знаю. WBR Dmitri Ivanov -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]