Portál AbcLinuxu, 12. května 2025 08:59

Dotaz: Porovnání výrazů - IF (syntax)

30.10.2008 14:58 jben | skóre: 4
Porovnání výrazů - IF (syntax)
Přečteno: 405×
Odpovědět | Admin
Můžete poradit, jak správně zapsat podmínku pro porovnání výrazů, jedná se mi hlavně o větší nebo menší. Moje pokusy viz příklad. Stačí případné nasměrování, kde hledat. Díky
[root@beta /]# xx1=10
[root@beta /]# xx2=20
[root@beta /]# if [ $xx2 == $xx1 ]; then echo 'OK'; else echo 'DEF' ; fi
DEF
[root@beta /]# if [ $xx2 != $xx1 ]; then echo 'OK'; else echo 'DEF' ; fi
OK
[root@beta /]# if [ $xx2 < $xx1 ]; then echo 'OK'; else echo 'DEF' ; fi
OK
[root@beta /]# if [ $xx2 > $xx1 ]; then echo 'OK'; else echo 'DEF' ; fi
OK
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

30.10.2008 15:10 Jan Šimák | skóre: 37 | Hradec Králové
Rozbalit Rozbalit vše Re: Porovnání výrazů - IF (syntax)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Podívejte se na help test nebo man bash.
30.10.2008 21:25 jben | skóre: 4
Rozbalit Rozbalit vše Re: Porovnání výrazů - IF (syntax)
dík a nasměrování, bash jsem prohlížel, ale nějak jsem to tam nenašel. Ale ten test je bezva příklad.
Josef Kufner avatar 30.10.2008 23:40 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Porovnání výrazů - IF (syntax)
man [ ;-)
Hello world ! Segmentation fault (core dumped)
31.10.2008 01:00 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
Rozbalit Rozbalit vše Re: Porovnání výrazů - IF (syntax)
Není to nějaká alias?
31.10.2008 01:07 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Porovnání výrazů - IF (syntax)
Na některých systémech je to nějaká symlink. Ale třeba na OpenSuSE jsou /usr/bin/test a /usr/bin/[ z nějakých záhadných důvodů různé. :-)
31.10.2008 01:08 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
Rozbalit Rozbalit vše Re: Porovnání výrazů - IF (syntax)
No já myslel hlavně tu manpage :-)
30.10.2008 15:13 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: Porovnání výrazů - IF (syntax)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ak sa porovnávajú čísla, použil by som radšej -eq, -ge, -gt, -le, -lt a -ne; teda:
if [ $xx2 -eq $xx1 ]; then echo 'OK'; else echo 'DEF' ; fi
if [ $xx2 -ne $xx1 ]; then echo 'OK'; else echo 'DEF' ; fi
if [ $xx2 -lt $xx1 ]; then echo 'OK'; else echo 'DEF' ; fi
if [ $xx2 -gt $xx1 ]; then echo 'OK'; else echo 'DEF' ; fi
30.10.2008 23:30 Mti. | skóre: 31 | blog: Mti
Rozbalit Rozbalit vše Re: Porovnání výrazů - IF (syntax)
naivni dotaz: je neco spatneho na
if (( $xx2 > $xx1 )) ...
kdyz nic jineho, pripadne mi to citelnejsi.
Vidim harddisk mrzuty, jehoz hlava plotny se dotyka...
31.10.2008 00:54 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: Porovnání výrazů - IF (syntax)
Konštrukcia (( výraz )) funguje aj v príkazovom riadku? :)

Inak v bash skripte je to určite prehľadnejšie riešenie.
31.10.2008 01:20 jben | skóre: 4
Rozbalit Rozbalit vše Re: Porovnání výrazů - IF (syntax)
to je přesně to, co jsem původně hledal, jen jsem nevěděl, jak to zapsat. dík
31.10.2008 08:28 Jan Šimák | skóre: 37 | Hradec Králové
Rozbalit Rozbalit vše Re: Porovnání výrazů - IF (syntax)
Nic špatného na tom není :-) Pouze je důležité si uvědomit, že konstrukce [ výraz ] a (( výraz )) jsou dvě odlišné věci. (( výraz )) v bashi reprezentuje aritmetické vyhodnocení výrazu, viz help let a help \(\( \)\)
30.10.2008 15:28 zdjt
Rozbalit Rozbalit vše Re: Porovnání výrazů - IF (syntax)
Odpovědět | | Sbalit | Link | Blokovat | Admin
[root@beta /]# 
... pozor, velky pruser je na blizku.
Jakub Lucký avatar 30.10.2008 15:42 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: Porovnání výrazů - IF (syntax)
že člověk testuje pod rootem?

To bych neřekl, že je nablízku... zatím je k němu jen nasměrováno, ale jen opravdu lehce... Já pracuju pod rootem (v bashi pochopitelně) skoro pořád...
If you understand, things are just as they are; if you do not understand, things are just as they are.
30.10.2008 21:33 jben | skóre: 4
Rozbalit Rozbalit vše Re: Porovnání výrazů - IF (syntax)

uznávám, že moje dotazy jsou ryze laické, ale to ještě neznamená, že musím být slon v porcelánu. Některé věci znám, jiné ne, protože jsem je zatím nepotřeboval. Prostě řeším je to co potřebuju a když mi něco nejde podle představ, tak se zeptám.

Test pod rootem taky neznamená, že to je na ostrém stroji. Mě to takto vyhovuje, myslím, že to má i své výhody.

Všem dík za rady.
Josef Kufner avatar 30.10.2008 23:42 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Porovnání výrazů - IF (syntax)
Ano, výhodou je, že můžeš jedním překlepem sundat celý systém.
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.