[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: