Re: шелл-скрипт квесчн.
Artem Chuprina wrote:
> Alexander GQ Gerasiov -> debian-russian@lists.debian.org @ Fri, 26 Jan 2007 10:10:12 +0300:
>
> >> > #!/bin/sh
> >> > cmd1 | cmd2
> >> > if cmd1 закончилось с ошибкой;then
> >> > exit 1
> >> > else
> >> > exit 0
> >> > fi
> >> >
> >> > Только очень не хочется для этого файлы создавать. Можно еще из
> >> > сабшелла SIG_USR1 послать, но тоже как-то кажется слишком
> >> > громоздким =\
> >>
> >> { cmd1 || error=1 }|cmd2
> >>
> >> if test "$error" = 1; then ...
> AGG> Вот сразу видно, что ты даже не пробовал запускать.
> AGG> Во-первых ошибка синтаксическая, во-вторых, команда перед перед пайпом
> AGG> запустится в сабшелле и после пайпа error будет неопределен.
>
> А вот не надо грязи. {} - это в том же процессе. В отличие от ().
> Другое дело, что это опять не чистый sh, а в более других шеллах есть
> более прямые методы.
Each command in a pipeline is executed as a separate process (i.e., in a
subshell).
from bash(1)
=\ скобки тут не при чем.
Reply to: