Како да додадете пресметки на баш сценарио
Иако Баш е јазик за скриптирање, има речиси сите можности на општ програмски јазик. Ова ги вклучува аритметичките функции. Постојат голем број на опции на синтакса што можете да ги користите за да потсетите аритметичка евалуација на изразот. Можеби најчитаниот е командата за пуштање. На пример
нека "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".
Покрај аритметичката евалуација, баш-школка обезбедува и други програмски конструкции, како што се за-петелките , додека-петелките , условите и функциите и потпротоколите .