Vykonávanie základných aritmetických operácií
Jednoduché aritmetické operácie ako sčítanie, odčítanie, delenie a násobenie je možné vykonať pomocou príkazu 'bc'. Syntax pre použitie jednoduchých binárnych operátorov v bashe pomocou príkazu „bc“ je nasledovná.
[chránené e-mailom]: ~ $ echo “V tejto časti použijeme príkaz „bc“ na vykonávanie jednoduchých aritmetických operácií.
[chránené e-mailom]: ~ $ num1 = 2.35322 5[chránené e-mailom]: ~ $ num2 = 1.223353
[chránené e-mailom]: ~ $ echo „$ num1 + $ num2“ | pred n. l
3.576578
[chránené e-mailom]: ~ $ echo „$ num1- $ num2“ | pred n. l
1.129872
[chránené e-mailom]: ~ $ echo „$ num1 * $ num2“ | pred n. l
2.878824
[chránené e-mailom]: ~ $ echo „$ num1 / $ num2“ | pred n. l
1
Vo vyššie uvedenom príklade sme pri vykonávaní delenia dostali výsledok bez desatinných miest. Aby sme dostali výsledok až k 'n' desatinným čiarkam, musíme nastaviť hodnotu mierky na 'n', ako je znázornené v nasledujúcom príklade.
[chránené e-mailom]: ~ $ echo “scale = 10; $ num1 / $ num2 “| pred n. l1.9235862420
Prípadne môžeme na získanie desatinného výstupu použiť príznak '-l' a príkaz 'bc'.
[chránené e-mailom]: ~ $ echo „$ num1 / $ num2“ | bc -l1.92358624207403750184
Príkaz 'bc' sa dá použiť aj na vykonanie delenia modulov a na výpočet sily čísla v základných skriptoch.
[chránené e-mailom]: ~ $ echo „10% 4“ | pred n. l2
[chránené e-mailom]: ~ $ echo „10 ^ 2“ | pred n. l
100
Vykonávanie pokročilých aritmetických operácií
Doteraz sme príkaz „bc“ používali na vykonávanie základných aritmetických operácií, ako sú sčítanie, odčítanie, násobenie atď., teraz; v tejto časti použijeme príkaz 'bc' na vykonanie niektorých pokročilých aritmetických operácií. Budeme diskutovať o tom, ako môžeme použiť porovnávacie operátory, logické alebo boolovské operátory, pokročilé matematické funkcie a podmienené príkazy v bashe pomocou príkazu 'bc'.
Prevádzkovatelia porovnania
Operátory porovnania vezmú dve čísla, porovnajú ich a potom sa vrátia 1 alebo 0 v závislosti od porovnania. Ak je porovnanie pravdivé, potom je výsledok PRAVDA (1); inak je FALSE (0). Nasleduje niekoľko príkladov porovnávacích operátorov.
- num1> num2: Toto porovnanie sa vráti 1 ak num1 je väčšie ako num2.
- num1 < num2: Výsledok bude 1 ak num1 je menej ako num2.
- num1 <= num2: Výsledok bude 1 ak num1 je menšie alebo rovnaké ako num2.
- num1> = num2: Výsledok bude 1 ak num1 je väčšie alebo rovnaké ako num2.
- num1 == num2: Výsledok bude 1 ak num1 sa rovná num2.
- num1 != num2: Výsledok bude 1 ak nie sú obe čísla rovnaké.
Nasleduje niekoľko príkladov operátorov porovnávania použitých spolu s príkazom „bc“.
[chránené e-mailom]: ~ $ echo „5 == 5“ | pred n. l1
[chránené e-mailom]: ~ $ echo „4!= 4 ”| pred n. l
0
[chránené e-mailom]: ~ $ echo „2> 5“ | pred n. l
0
[chránené e-mailom]: ~ $ echo „4<=4” | bc
1
Boolovskí operátori
Logické operátory alebo logické operátory sa používajú v podmienených príkazoch na vykonávanie niektorých logických rozhodnutí. Nasledujú tri základné logické operátory.
- stat1 && stat2: Toto sa vráti 1 ak sú oba výroky nenulová.
- stat1 || stat2: Toto sa vráti 1 ak je niektorý z výrokov nenulová.
- ! stat: Toto sa vráti 1 ak je vyhlásenie nenulová a naopak.
Nasledujúce príklady ilustrujú, ako sa logické operátory používajú s príkazom „bc“.
[chránené e-mailom]: ~ $ echo „-5 && 0“ | pred n. l0
[chránené e-mailom]: ~ $ echo “-1 || 0 ”| pred n. l
1
[chránené e-mailom]: ~ $ echo “! 0 ”| pred n. l
1
Podmienené vyhlásenia
Podmienené príkazy sa používajú na vykonávanie konkrétnych príkazov v závislosti od použitej podmienky. Podmienka použitá v podmienenom príkaze zahŕňa logické a porovnávacie operátory. Nasleduje príklad podmienených príkazov pomocou príkazu 'bc'.
[chránené e-mailom]: ~ $ a = 15[chránené e-mailom]: ~ $ b = 20
[chránené e-mailom]: ~ $ echo 'ak (a> b) vypíše „a je väčšie“, iné vypíše „b je väčšie“' | bc -l
b je väčšie
Vo vyššie uvedenom príklade príkaz kontroluje, či je a väčšie ako b alebo nie. Ak je a väčšie ako b, vytlačí sa „a je väčšie“; v opačnom prípade sa vytlačí „b je väčšie.„Vo vyššie uvedenom príklade môžeme použiť ľubovoľnú podmienku pomocou booleovských a porovnávacích operátorov.
Matematické funkcie
Príkaz 'bc' poskytuje aj niektoré zabudované matematické funkcie, ktoré môžeme použiť bez ich definovania. Nasleduje niekoľko základných funkcií použitých v príkaze „bc“ v bash.
- s (x): vráti sínus x, kde x je v radiánoch
- c (x): vráti kosínus x, kde x je v radiánoch
- a (x): vráti arkustangens x a výsledok je v radiánoch
- sqrt (x): vráti druhú odmocninu z x. Ak je x záporné, spôsobí to chybu za behu
- l (x): vráti prirodzený logaritmus x.
Tieto funkcie možno použiť s príkazom „bc“, ako je uvedené v nasledujúcich príkladoch.
[chránené e-mailom]: ~ $ pi = 3.1415[chránené e-mailom]: ~ $ echo „s ($ pi / 2)“ | bc -l
1
[chránené e-mailom]: ~ $ echo „c ($ pi / 2)“ | bc -l
0
[chránené e-mailom]: ~ $ echo „a (1)“ | bc -l
0.7854
Druhá odmocnina čísla sa dá vypočítať v bashe pomocou príkazu „bc“, ako je znázornené na nasledujúcom obrázku.
[chránené e-mailom]: ~ $ echo „sqrt (4)“ | bc -l2
Pri pokuse o výpočet druhej odmocniny záporného čísla spôsobí shell chybu za behu.
[chránené e-mailom]: ~ $ echo „sqrt (-2)“ | bc -lChyba za behu (func = (main), adr = 4): Druhá odmocnina zo záporného čísla
Prirodzený logaritmus čísla možno vypočítať v bashe pomocou príkazu „bc“ nasledujúcim spôsobom.
[chránené e-mailom]: ~ $ echo „l (2)“ | bc -l.69314718055994530941
Záver
Pri písaní automatizačných skriptov v jazyku bash niekedy potrebujeme na vykonávanie príkazov pokročilé matematické funkcie a logické operátory. Príkaz „bc“ poskytuje mnoho pokročilých matematických funkcií a operátorov na vykonávanie aritmetických výpočtov na vysokej úrovni. V tomto výučbe sa diskutovalo o použití príkazu „bc“ na vykonávanie pokročilých aritmetických operácií v bashe.