LINUX.ORG.RU

(victor@pts/1)~ $> cat t                                                  [sh]
t1=1
t2=0

if [ $t1 -eq 1 -a $t2 -eq 0 ]; then
  echo ok
else
  echo fail
fi
(victor@pts/1)~ $> sh t                                                   [sh]
ok
(victor@pts/1)~ $> jed t                                                  [sh]
(victor@pts/1)~ $> cat t                                                  [sh]
t1=1
t2=1

if [ $t1 -eq 1 -a $t2 -eq 0 ]; then
  echo ok
else
  echo fail
fi
(victor@pts/1)~ $> sh t                                                   [sh]
fail
(victor@pts/1)~ $>                                                        [sh]

ananas ★★★★★
()

У меня все работает:

$if [ 1 -eq 1 -a 0 -eq 1 ]; then echo TRUE;else echo FALSE;fi
FALSE

$if [ 1 -eq 1 -a 0 -eq 0 ]; then echo TRUE;else echo FALSE; fi
TRUE


Попробуй так:

if [ "$res1" -eq 1 -a "$res2" -eq 0 ] then ...

Die-Hard ★★★★★
()
Ответ на: комментарий от ananas

2ananas :

> ...так не сработает. в таком случае нужно ...

Сам попробуй!:

$if [ "1" -eq 1 -a "0" -eq 0 ]; then echo TRUE;else echo FALSE; fi
TRUE

Die-Hard ★★★★★
()

omerm@enki:~$ F=1 
omerm@enki:~$ T=0
omerm@enki:~$ if [ $F -eq 1 ] && [ $T -eq 1 ] ; then echo "FOO" ; fi
omerm@enki:~$ if [ $F -eq 1 ] && [ $T -eq 0 ] ; then echo "FOO" ; fi
FOO
omerm@enki:~$

omerm
()
Ответ на: комментарий от ananas

> так не сработает.

Сработает, и это правильнее.

> в таком случае нужно

Гм... 1 эквивалентно "1" всегда, а вот $res1 и "$res1" - нет.

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от Die-Hard

2 Die-Hard
> Сам попробуй!:

> $if [ "1" -eq 1 -a "0" -eq 0 ]; then echo TRUE;else echo FALSE; fi
TRUE

в этом случае - все будет нормально. но вот попробуй такой примерчик

t1=1
t2=

if [ "$t1" -eq 1 -a "$t2" -eq 0 ]; then
  echo ok
else
  echo fail
fi

ananas ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.