Programování BASH

bc provádět pokročilé aritmetické operace v BASH

bc provádět pokročilé aritmetické operace v BASH
Basic Calculator, také známý jako 'bc', je nástroj příkazového řádku Linux používaný k provádění pokročilé aritmetiky a algebry v bash skriptech. Poskytuje mnoho různých matematických funkcí, jako je sinus, kosinus, tangens, přirozený logaritmus v bash. Bash nemůže provádět pokročilé aritmetické operace, jako je srovnání plováků; to je místo, kde bc přijde vhod. Příkazu „bc“ předcházel nástroj „dc“ (Desk Calculator), unixový nástroj. V tomto kurzu použijeme příkaz 'bc' k provádění pokročilých aritmetických operací.

Provádění základních aritmetických operací

Jednoduché aritmetické operace, jako je sčítání, odčítání, dělení a násobení, lze provádět pomocí příkazu 'bc'. Syntaxe pro použití jednoduchých binárních operátorů v bash pomocí příkazu 'bc' je následující.

[chráněno e-mailem]: ~ $ echo “ „| před naším letopočtem

V této části použijeme příkaz 'bc' k provedení jednoduchých aritmetických operací.

[chráněno e-mailem]: ~ $ num1 = 2.35322 5
[chráněno e-mailem]: ~ $ num2 = 1.223353
[chráněno e-mailem]: ~ $ echo „$ num1 + $ num2“ | před naším letopočtem
3.576578
[chráněno e-mailem]: ~ $ echo „$ num1- $ num2“ | před naším letopočtem
1.129872
[chráněno e-mailem]: ~ $ echo „$ num1 * $ num2“ | před naším letopočtem
2.878824
[chráněno e-mailem]: ~ $ echo „$ num1 / $ num2“ | před naším letopočtem
1

Ve výše uvedeném příkladu jsme při provádění dělení dostali výsledek bez desetinných míst. Abychom dostali výsledek až na 'n' desetinná místa, musíme nastavit hodnotu měřítka na 'n', jak ukazuje následující příklad.

[chráněno e-mailem]: ~ $ echo “scale = 10; $ num1 / $ num2 “| před naším letopočtem
1.9235862420

Alternativně můžeme k získání desetinného výstupu použít příznak '-l' a příkaz 'bc'.

[chráněno e-mailem]: ~ $ echo „$ num1 / $ num2“ | bc -l
1.92358624207403750184

Příkaz 'bc' lze také použít k provedení dělení modulu a k výpočtu síly čísla v bash skriptech.

[chráněno e-mailem]: ~ $ echo „10% 4“ | před naším letopočtem
2
[chráněno e-mailem]: ~ $ echo „10 ^ 2“ | před naším letopočtem
100

Provádění pokročilých aritmetických operací

Dosud jsme použili příkaz 'bc' k provedení některých základních aritmetických operací, jako je sčítání, odčítání, násobení atd., Nyní; v této části použijeme příkaz 'bc' k provedení některých pokročilých aritmetických operací. Budeme diskutovat o tom, jak můžeme použít porovnávací operátory, logické nebo booleovské operátory, pokročilé matematické funkce a podmíněné příkazy v bash pomocí příkazu 'bc'.

Porovnávací operátoři

Porovnávací operátoři vezmou dvě čísla, porovnají je a poté se vrátí 1 nebo 0 v závislosti na srovnání. Pokud je srovnání pravdivé, pak je výsledek PRAVDA (1); jinak je FALSE (0). Následuje několik příkladů operátorů porovnání.

  • num1> num2: Toto srovnání se vrátí 1 pokud num1 je větší než num2.
  • num1 < num2: Výsledek bude 1 pokud num1 je menší než num2.
  • num1 <= num2: Výsledek bude 1 pokud num1 je menší nebo rovno num2.
  • num1> = num2: Výsledek bude 1 pokud num1 je větší nebo rovno num2.
  • num1 == num2: Výsledek bude 1 pokud num1 se rovná num2.
  • num1 != num2: Výsledek bude 1 pokud nejsou obě čísla stejná.

Následuje několik příkladů operátorů porovnání použitých společně s příkazem „bc“.

[chráněno e-mailem]: ~ $ echo „5 == 5“ | před naším letopočtem
1
[chráněno e-mailem]: ~ $ echo „4!= 4 ”| před naším letopočtem
0
[chráněno e-mailem]: ~ $ echo „2> 5“ | před naším letopočtem
0
[chráněno e-mailem]: ~ $ echo „4<=4” | bc
1

Booleovští operátoři

Logické nebo logické operátory se používají v podmíněných příkazech k provádění některých logických rozhodnutí. Následuje tři základní logické operátory.

  • stat1 && stat2: To se vrátí 1 pokud jsou obě tvrzení nenulový.
  • stat1 || stat2: To se vrátí 1 pokud některý z tvrzení je nenulový.
  • ! stat: To se vrátí 1 pokud je prohlášení nenulový a naopak.

Následující příklady ilustrují, jak se logické operátory používají s příkazem „bc“.

[chráněno e-mailem]: ~ $ echo „-5 && 0“ | před naším letopočtem
0
[chráněno e-mailem]: ~ $ echo „-1 || 0 ”| před naším letopočtem
1
[chráněno e-mailem]: ~ $ echo “! 0 ”| před naším letopočtem
1

Podmíněná prohlášení

Podmíněné příkazy se používají k provádění konkrétních příkazů v závislosti na použité podmínce. Podmínka použitá v podmíněném příkazu zahrnuje logické a porovnávací operátory. Následuje příklad podmíněných příkazů pomocí příkazu 'bc'.

[chráněno e-mailem]: ~ $ a = 15
[chráněno e-mailem]: ~ $ b = 20
[chráněno e-mailem]: ~ $ echo 'pokud (a> b) vytisknout „a je větší“ jinak vytisknout „b je větší“' | bc -l
b je větší

Ve výše uvedeném příkladu příkaz zkontroluje, zda a je větší než b nebo ne. Pokud je a větší než b, vytiskne se „a je větší“; jinak vytiskne „b je větší.„Ve výše uvedeném příkladu můžeme použít libovolnou podmínku pomocí logických a porovnávacích operátorů.

Matematické funkce

Příkaz 'bc' také poskytuje některé vestavěné matematické funkce, které můžeme použít, aniž bychom je definovali. Následuje několik základních funkcí použitých v příkazu 'bc' v bash.

  • s (x): vrací sinus x, kde x je v radiánech
  • c (x): vrací kosinus x, kde x je v radiánech
  • sekera): vrací arkustangens x a výsledek je v radiánech
  • sqrt (x): vrací druhou odmocninu x. Když je x záporné, způsobí to runtime chybu
  • l (x): vrací přirozený logaritmus x.

Tyto funkce lze použít s příkazem 'bc', jak je znázorněno v následujících příkladech.

[chráněno e-mailem]: ~ $ pi = 3.1415
[chráněno e-mailem]: ~ $ echo „s ($ pi / 2)“ | bc -l
1
[chráněno e-mailem]: ~ $ echo „c ($ pi / 2)“ | bc -l
0
[chráněno e-mailem]: ~ $ echo „a (1)“ | bc -l
0.7854

Druhá odmocnina čísla může být vypočítána v bash pomocí příkazu 'bc', jak je znázorněno na následujícím obrázku.

[chráněno e-mailem]: ~ $ echo „sqrt (4)“ | bc -l
2

Při pokusu o výpočet druhé odmocniny záporného čísla skočí shell runtime chybu.

[chráněno e-mailem]: ~ $ echo „sqrt (-2)“ | bc -l
Chyba za běhu (func = (hlavní), adr = 4): Druhá odmocnina záporného čísla

Přirozený logaritmus čísla lze vypočítat v bash pomocí příkazu 'bc' následujícím způsobem.

[chráněno e-mailem]: ~ $ echo „l (2)“ | bc -l
.69314718055994530941

Závěr

Při psaní automatizačních skriptů v bash někdy potřebujeme k provádění příkazů pokročilé matematické funkce a logické operátory. Příkaz 'bc' poskytuje mnoho pokročilých matematických funkcí a operátorů k provádění aritmetických výpočtů na vysoké úrovni. V tomto výukovém programu proběhlo použití příkazu 'bc' k provádění pokročilých aritmetických operací v bash.

Hry SuperTuxKart pro Linux
SuperTuxKart pro Linux
SuperTuxKart je skvělý titul navržený tak, aby vám ve vašem systému Linux přinesl zážitek Mario Kart zdarma. Je to docela náročné a zábavné hrát, je n...
Hry Výukový program Battle for Wesnoth
Výukový program Battle for Wesnoth
The Battle for Wesnoth je jednou z nejpopulárnějších strategických her s otevřeným zdrojovým kódem, které si v tuto chvíli můžete zahrát. Tato hra se ...
Hry 0 A.D. Tutorial
0 A.D. Tutorial
Z mnoha strategických her venku je 0 A.D. dokáže vyniknout jako komplexní titul a velmi hluboká, taktická hra, přestože je otevřeným zdrojem. Vývoj hr...