Страница 1 из 1
Объединеие условий в операторе if
Добавлено: 2008-12-10 11:19:30
BAV_Lug
Вопрос собственно такой
Как правильно записать такую проверку
Код: Выделить всё
if [ ! -r /var/run/mpd1.pid ] и [ ! -r /var/run/mpd2.pid ]
then
......
Re: Объединеие условий в операторе if
Добавлено: 2008-12-10 13:37:46
hizel
Код: Выделить всё
if [ ! -r /var/run/mpd1.pid -a ! -r /var/run/mpd2.pid ];
then
Re: Объединеие условий в операторе if
Добавлено: 2008-12-10 14:11:03
Гость
еще можно
Код: Выделить всё
if [ ! -r /var/run/mpd1.pid ] && [ ! -r /var/run/mpd2.pid ]
then
# code
fi
или
Код: Выделить всё
if ! { [ -r /var/run/mpd1.pid ] || [ -r /var/run/mpd2.pid ]; }
then
# code
fi
или
Код: Выделить всё
if ! [ -r /var/run/mpd1.pid -o -r /var/run/mpd2.pid ]
then
# code
fi
или
Код: Выделить всё
if [ ! \( -r /var/run/mpd1.pid -o -r /var/run/mpd2.pid \) ]
then
# code
fi
или
Код: Выделить всё
if ! [ \( -r /var/run/mpd1.pid -o -r /var/run/mpd2.pid \) ]
then
# code
fi
а все конструкцию вида
можно заменить на
т.е. можно даже так
Код: Выделить всё
[ ! -r /var/run/mpd1.pid ] && [ ! -r /var/run/mpd2.pid ] && {
# code
}
или так
Код: Выделить всё
[ ! \( -r /var/run/mpd1.pid -o -r /var/run/mpd2.pid \) ] && {
# code
}
ps, вариаций очень много, но во всех случаех играет роль только exit code
= 0 (для логического `и') и exit code
> 0 (для логического `или'). Т.е. совершенно необязательно использовать test(1).
Re: Объединеие условий в операторе if
Добавлено: 2008-12-10 15:27:10
BAV_Lug
Всем спасибо за ответы