Аритметика во баш

Како да додадете пресметки на баш сценарио

Иако Баш е јазик за скриптирање, има речиси сите можности на општ програмски јазик. Ова ги вклучува аритметичките функции. Постојат голем број на опции на синтакса што можете да ги користите за да потсетите аритметичка евалуација на изразот. Можеби најчитаниот е командата за пуштање. На пример

нека "m = 4 * 1024"

ќе пресметува 4 пати 1024 и ќе го додели резултатот на променливата "m".

Можете да го испечатите резултатот со додавање на ехо изјава:

нека "m = 4 * 1024" echo $ m

Можете да го тестирате ова од командната линија со внесување на следниот код:

нека "m = 4 * 1024"; ехо $ m

Можете исто така да креирате датотека која ги содржи командите Bash, во кој случај треба да додадете линија на врвот на датотеката која ја одредува програмата која треба да го изврши кодот. На пример:

#! / bin / bash нека "m = 4 * 1024" echo $ m

претпоставувајќи дека извршната датотека Bash се наоѓа во / bin / bash . Исто така треба да ги поставите дозволите на вашата скриптна датотека така што да биде извршна. Претпоставувајќи дека името на сценариото е script1.sh , можете да ги поставите дозволите за извршна датотека со командата:

chmod 777 script1.sh

Потоа можете да го извршите со команда:

./script1.sh

Достапните аритметички операции се слични на оние во стандардните програмски јазици како Java и C. Покрај множењето, како што е илустрирано погоре, користите додаток:

нека "m = a + 7"

или одземање:

нека "m = a-7"

или поделба:

нека "m = a / 2"

или модулно (остатокот по цела поделба):

нека "m = a% 100"

Кога операцијата се применува на истата променлива на која му е доделен резултатот можете да ги користите стандардните аритметички стенографски оператори за назначување, исто така познати како оператори за доделување на соединенија. На пример, за тоа, имаме:

нека "m + = 15"

што е еквивалентно на "m = m + 15". За одземање имаме:

нека "m - = 3"

што е еквивалентно на "m = m - 3". За поделба имаме:

нека "m / = 5"

што е еквивалентно на "m = m / 5". И по модул, имаме:

нека "m% = 10"

што е еквивалентно на "m = m% 10".

Дополнително, можете да ги користите операторите за зголемување и намалување :

нека "m ++"

е еквивалентно на "m = m + 1". И

нека "m--"

е еквивалентно на "m = m - 1".

А потоа, тука е тројниот оператор "прашалник-дебеломер", кој враќа една од двете вредности зависно од тоа дали наведената состојба е точна или неточна. На пример

нека "k = (m <9)? 0: 1"

Десната страна на оваа изјава за назначување е оценета на "0", ако променливата "m" е помала од 9. Во спротивно, се евалуира на 1. Ова значи дека променливата "k" е доделена "0" ако "m" е помала од 9 и "1" во спротивно.

Општата форма на операторот со прашалник-дебелото црево е:

состојба? value-if-true: value-if-false

Аритметичка пловечка точка во баш

Операторот "Let" работи само за целобројна аритметика. За аритметика со подвижна запирка можете да го користите, на пример, калкулаторот GNU bc како што е илустрирано во овој пример:

ехо "32.0 + 1.4" | bc

Операторот "цевка" | " го пренесува аритметичкиот израз "32.0 + 1.4" на bc калкулаторот, кој го враќа вистинскиот број. Командата echo го печати резултатот на стандардниот излез.

Алтернативна синтакса за аритметика

Бактекс (назад единечни цитати) може да се користи за да се оцени аритметички израз како во овој пример:

ехо `expr $ m + 18`

Ова ќе додаде 18 на вредноста на променливата "m", а потоа испечатете го резултатот.

За да ја доделите вредноста на пресметката на променлива, можете да го користите знакот за еднаквост без празно место околу него:

m = `expr $ m + 18`

Друг начин да се проценат аритметичките изрази е да се користи двојна заграда. На пример:

((m * = 4))

Ова ќе ја удвои вредноста на променливата "m".

Покрај аритметичката евалуација, баш-школка обезбедува и други програмски конструкции, како што се за-петелките , додека-петелките , условите и функциите и потпротоколите .