الحساب في باش

كيفية إضافة حسابات إلى سيناريو باش

على الرغم من أن Bash هي لغة برمجة ، إلا أنها تتمتع بكامل إمكانيات لغة البرمجة للأغراض العامة. وهذا يشمل وظائف حسابية. هناك عدد من خيارات بناء الجملة التي يمكنك استخدامها لاستحضار التقييم الحسابي للتعبير. ولعل أكثرها قابلية للقراءة هي أمر السماح . فمثلا

دع "m = 4 * 1024"

حساب 4 مرات 1024 وتعيين النتيجة للمتغير "m".

يمكنك طباعة النتيجة عن طريق إضافة بيان صدى :

دع "m = 4 * 1024" صدى $ m

يمكنك اختبار ذلك من سطر الأوامر عن طريق إدخال التعليمة البرمجية التالية:

دعونا "م = 4 * 1024" ؛ صدى $ م

يمكنك أيضًا إنشاء ملف يحتوي على أوامر Bash ، وفي هذه الحالة يجب عليك إضافة سطر في أعلى الملف يحدد البرنامج المفترض لتنفيذ الشفرة. فمثلا:

#! / bin / bash let "m = 4 * 1024" صدى $ m

بافتراض أن Bash القابل للتنفيذ موجود في / bin / bash . تحتاج أيضًا إلى تعيين أذونات ملف البرنامج النصي الخاص بك بحيث يكون قابلاً للتنفيذ. بافتراض أن اسم ملف البرنامج النصي هو script1.sh ، يمكنك تعيين الأذونات لجعل الملف القابل للتنفيذ مع الأمر:

chmod 777 script1.sh

بعد ذلك يمكنك تنفيذه باستخدام الأمر:

./script1.sh

العمليات الحسابية المتوفرة مشابهة لتلك الموجودة في لغات البرمجة القياسية مثل Java و C. بالإضافة إلى الضرب ، كما هو موضح أعلاه ، فإنك تستخدم إضافة:

اترك "m = a + 7"

أو الطرح:

دعونا "م = أ - 7"

أو التقسيم:

دعونا "م = أ / 2"

أو modulo (الباقي بعد قسم صحيح):

اترك "m = a٪ 100"

عندما يتم تطبيق العملية على نفس المتغير الذي تم تعيين النتيجة له ​​، يمكنك استخدام مشغلي التعيينات المختزلة الحسابية القياسية ، والتي يشار إليها أيضًا بمشغلات التعيين المركبة. على سبيل المثال ، للإضافة ، لدينا:

اترك "m + = 15"

أي ما يعادل "m = m + 15". لطرح لدينا:

دع "m - = 3"

أي ما يعادل "م = م - 3". للتقسيم لدينا:

دع "m / = 5"

وهو ما يعادل "m = m / 5". وللحصول على modulo ، لدينا:

اترك "m٪ = 10"

أي ما يعادل "m = m٪ 10".

بالإضافة إلى ذلك ، يمكنك استخدام عوامل الزيادة و decrement :

دع "م + +"

يعادل "m = m + 1". و

دعونا "م"

يعادل "m = m - 1".

ثم هناك عامل التشغيل "علامة الاستفهام" ، الذي يُرجع واحدة من قيمتين بناءً على ما إذا كان الشرط المحدد صحيحًا أم خطأ. فمثلا

دع "ك = (م <9)؟ 0: 1"

يقيّم الجانب الأيمن من بيان المهمة هذا إلى "0" إذا كان المتغير "m" أقل من 9. وإلا فإنه يتم تقييمه إلى 1. ويعني هذا أن المتغير "k" يتم تعيينه "0" إذا كان "m" أقل من 9 و "1" على خلاف ذلك.

الشكل العام لمشغل علامة الاستفهام-علامة الاستفهام هو:

شرط ؟ value-if-true: value-if-false

عائم نقطة حسابية في باش

المشغل السماح يعمل فقط لحساب صحيحا. بالنسبة لحسابات النقطة العائمة ، يمكنك استخدام على سبيل المثال آلة حاسبة GNU bc كما هو موضح في هذا المثال:

صدى "32.0 + 1.4" | قبل الميلاد

عامل "الأنبوب" "|" يمر التعبير الحسابي "32.0 + 1.4" إلى الحاسبة bc ، والتي تُرجع الرقم الحقيقي. يطبع أمر echo النتيجة إلى الإخراج القياسي.

صيغة بديلة للحساب

يمكن استخدام Backticks (علامات الاقتباس الفردية) لتقييم تعبير حسابي كما في هذا المثال:

صدى `expr $ m + 18`

سيضيف هذا 18 إلى قيمة المتغير "m" ثم يطبع النتيجة.

لتعيين قيمة الحساب إلى متغير ، يمكنك استخدام علامة المساواة بدون فراغات حولها:

م = `expr $ m + 18`

هناك طريقة أخرى لتقييم التعبيرات الحسابية وهي استخدام قوسين مزدوجين. فمثلا:

((م * = 4))

هذا سوف أربعة أضعاف قيمة المتغير "م".

إلى جانب التقييم الحسابي ، يوفر غلاف Bash بنى برمجة أخرى ، مثل الحلقات ، بينما الحلقات ، الشرطية ، والوظائف والروتينات الفرعية .