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]

Ответить