Команда Expr и calc: Решаване на математически изрази в терминала

Аз съм от онези, които винаги програмират скриптове тряскам за решаване на ежедневни ситуации (пробийте паролата за AP / Router, автоматизирайте процеси и т.н.).

В определени случаи видях необходимостта да присвоя стойността на математически израз на променлива или просто да работя с математически изрази, там се озовах с проблема, че bash и математическите изрази, изчисленията не са много приятелски. Случва се bash да не е като python, какво да кажем променлива = 1 + 5/6 (например), в Bash трябва да използваме командата ИЗРАЗът o Проследяване

Expr команда

С други думи, командата expr ни помага да решаваме математически изрази в терминала, с нея можем да изчислим това, от което се нуждаем. Например, ако искаме да се появи резултатът 1 + 2 * 8/3, поставяме в терминала:

expr 1 + 2 \* 8 / 3

Имайте предвид, че преди звездичката * поставям обратната наклонена черта - »\ ... необходимо е, защото expr не тълкува звездичката като символ за умножение, освен ако \

И резултатът ще се появи на екрана. Ето екранна снимка с няколко примера:

screenshot_expr1

Както можете да видите в окончателните изчисления (14/4 и 13/4), 14, разделено на 4, всъщност е 3.5, а 13, разделено на 4, е всъщност 3.25, така че как е възможно да ни покаже 3 и в двата случая? Това, което се случва, е, че командата expr не ни показва десетичните знаци, тоест това, което следва след запетаята, не го показва, а ни показва само цялото число.

В случай, че искаме да присвоим на променлива резултата от математически израз (Пример: 10/2), това би било така:

variable=`expr 10 / 2`

След това го проверяваме с:

echo $variable

Важно е да има интервал между всеки знак, тоест интервал между всяко число, всяко събиране, изваждане, умножение или разделяне

Команда Calc

Този, за разлика от предишния, е точен по отношение на десетичните знаци, пример:

calc 15 / 4

Ще ни покаже: 3.75

Ето екранна снимка с няколко примера:

screenshot_calc

За разлика от expr, когато използваме calc, по-добре е да НЯМА интервал между всеки знак, тоест да няма интервали между числа и символи, точно както виждате в предишното изображение. Нито трябва да добавят \ преди *

Е, това е основното, за което исках да ви разкажа.

Все пак има някои други интересни съвети за всяка команда (особено calc), препоръчвам ви да прочетете ръководството:

man calc

man expr

поздрави


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   елав каза той

    Много полезно, въпреки че определено не би било добре да използвате Bash за математически изчисления, десетичните знаци се броят :)

    1.    Уада каза той

      Г-н elav, все още имаме bash калкулатор 🙂 можем да използваме аргумента -l, за да използваме стандартната математическа библиотека
      нещо такова

      $ echo "(4/8)+(6/9)" | bc -l
      1.166666666666666666666666

      ha

      1.    елав каза той

        ????

      2.    eliotime3000 каза той

        Отлично. По този начин избягвам неприятностите с инсталирането на XCalc, когато използвам чист X11.

      3.    KZKG ^ Гаара каза той

        О, не знаех този, страхотно !!

  2.   clow_eriol каза той

    Благодаря, доста е полезно 😉

    1.    KZKG ^ Гаара каза той

      Благодаря ^ _ ^

  3.   Ноктуидо каза той

    Благодаря ти. Системният калкулатор е конкурент за основни операции.

    1.    KZKG ^ Гаара каза той

      Благодаря ви, че ни прочетохте 🙂

  4.   Хоакин каза той

    Добър съвет!

  5.   Педро лала каза той

    не ми харесва