أمر Expr و calc: حل التعبيرات الرياضية في Terminal

أنا واحد من أولئك الذين يبرمجون دائمًا البرامج النصية سحق لحل المواقف اليومية (كسر كلمة مرور AP / جهاز التوجيه ، وأتمتة العمليات ، وما إلى ذلك.).

في مناسبات معينة ، رأيت الحاجة إلى تخصيص قيمة تعبير رياضي لمتغير ، أو ببساطة العمل مع التعبيرات الرياضية ، هناك أجد نفسي مع مشكلة أن التعبيرات الرياضية والباش ليست ودية للغاية. يحدث أن باش ليس مثل بيثون ، ماذا يمكننا أن نقول متغير = 1 + 5/6 (على سبيل المثال) ، في Bash يجب أن نستخدم الأمر على سبيل المثال o البحث عن المفقودين

أمر Expr

بعبارة أخرى ، يساعدنا الأمر expr في حل التعبيرات الرياضية في المحطة ، ويمكننا بواسطتها حساب ما نحتاج إليه. على سبيل المثال ، إذا أردنا ظهور نتيجة 1 + 2 * 8/3 ، فسنضع في الجهاز:

expr 1 + 2 \* 8 / 3

لاحظ أنه قبل علامة النجمة * أضع الشرطة المائلة للخلف - »\ ... هذا ضروري ، لأن expr لا يفسر علامة النجمة كرمز للضرب إلا إذا كان \

وستظهر النتيجة على الشاشة. هذه لقطة شاشة مع بعض الأمثلة:

لقطة شاشة

كما ترون في الحسابات النهائية (14/4 و 13/4) ، 14 مقسومة على 4 هي في الواقع 3.5 و 13 على 4 هي في الواقع 3.25 ، فكيف يمكن أن تظهر لنا 3 في كلتا الحالتين؟ ما يحدث هو أن الأمر expr لا يُظهر لنا الكسور العشرية ، أي ما يلي بعد الفاصلة ، لا يُظهره ، بل يُظهر لنا فقط العدد الصحيح.

في حالة رغبتنا في إسناد نتيجة تعبير رياضي إلى متغير (مثال: 10/2) ، سيكون الأمر على النحو التالي:

variable=`expr 10 / 2`

ثم نتحقق من ذلك باستخدام:

echo $variable

من المهم أن يكون هناك مسافة بين كل حرف ، أي مسافة بين كل رقم ، كل رمز جمع أو طرح أو ضرب أو قسمة

أمر احسب

هذا ، على عكس السابق ، دقيق من حيث الكسور العشرية ، على سبيل المثال:

calc 15 / 4

سيظهر لنا: 3.75

إليك لقطة شاشة بها عدة أمثلة:

قطة_حساب

على عكس expr ، عندما نستخدم calc ، من الأفضل عدم وجود مسافة بين كل حرف ، أي عدم وجود مسافات بين الأرقام والرموز ، تمامًا كما ترون في الصورة السابقة. ولا يحتاجون إلى تقديم \ قبل *

حسنًا ، هذا أساسًا ما أردت أن أخبركم به.

ومع ذلك ، لا تزال هناك بعض النصائح الأخرى المثيرة للاهتمام لكل أمر (خاصةً احسب) ، أوصي بقراءة الدليل:

man calc

man expr

تحياتي


11 تعليقات ، اترك لك

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   إيلاف قال

    مفيد جدًا ، على الرغم من أنه لن يكون من الجيد بالتأكيد استخدام Bash في الحسابات الرياضية ، إلا أن عدد الكسور العشرية :)

    1.    ادا قال

      Mr. elav لا يزال لدينا حاسبة bash 🙂 يمكننا استخدام الوسيطة -l لاستخدام مكتبة الرياضيات القياسية
      شيء من هذا القبيل

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

      ha

      1.    إيلاف قال

        <img draggable="false" class="emoji" alt="" src="https://s.w.org/images/core/emoji/2.2.1/svg/1f600.svg">

      2.    إليوتيمي 3000 قال

        ممتاز. بهذه الطريقة ، أتجنب متاعب تثبيت XCalc عند استخدام Pure X11.

      3.    KZKG ^ جارا قال

        أوه لم أكن أعرف هذا ، عظيم !!

  2.   clow_eriol قال

    شكرًا ، إنه مفيد جدًا 😉

    1.    KZKG ^ جارا قال

      شكرا لك ^ _ ^

  3.   نوكتويدو قال

    شكرا. كانت حاسبة النظام منافسًا للعمليات الأساسية.

    1.    KZKG ^ جارا قال

      شكرا لك على قراءتنا 🙂

  4.   خواكين قال

    نصيحة جيدة!

  5.   بيدرو لالا قال

    أنا لا أحب لي