[Comm] shell logical expressions
Michael Shigorin
=?iso-8859-1?q?mike_=CE=C1_osdn=2Eorg=2Eua?=
Пт Авг 17 15:05:22 MSD 2007
On Fri, Aug 17, 2007 at 02:29:05PM +0400, Eugene Prokopiev wrote:
> Нужно выполнить несколько команд, если хотя бы одна вернула не
> 0, тоже вернуть не 0 и выругаться. Делаю примерно так:
>
> #!/bin/sh
> [ `drbdadm state all | awk -F'/' '{print $1}'` == "Primary" ]
> partition=$?
> grep drbd0 /proc/mounts > /dev/null
> filesystem=$?
Я бы переписал где-то так:
[ `drbdadm state all | awk -F'/' '{print $1}'` == "Primary" ] \
&& grep drbd0 /proc/mounts > /dev/null \
&& exit 0
mail .....
Почитай скрипты из пакетов (с)авторства ldv@ и legion@ (в т.ч.
control, alterator-*) -- там много интересного можно подметить
;-)
У Лёши за последний год или два стиль очень интересный и сжатый
стал. При этом читается и работает.
> if [ $partition != '0' ] || [ $filesystem != '0' ] ; then
> mail -s "HAD Monitor fail" root << EOF
> drbd state:
> `cat /proc/drbd`
>
> mount state:
> `grep drbd0 /proc/mounts`
> EOF
> exit 1
> else
> exit 0
> fi
>
> Но не оставляет ощущение кривизны куска кода с if. Можно правильнее/проще?
>
--
---- WBR, Michael Shigorin <mike на altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
Подробная информация о списке рассылки community