التوسع الحسابي
تسمح القشرة بإجراء العمليات الحسابية عن طريق التوسيع. يتيح لنا ذلك استخدام موجه shell كآلة حاسبة:
[me @ linuxbox ~] $ صدى $ ((2 + 2))
4
[me @ linuxbox ~] $ صدى $ ((2 + 2))
4
يستخدم التوسع الحسابي النموذج:
$ ((التعبير))
أين التعبير هو تعبير حسابي يتكون من القيم والمعاملات الحسابية.
لا يدعم التوسع الحسابي سوى الأعداد الصحيحة (أعداد صحيحة ، بدون أعداد عشرية) ، ولكن يمكنه تنفيذ عدد كبير من العمليات المختلفة. فيما يلي عدد قليل من المشغلين المدعومين:
الجدول 7-1: العوامل الحسابية
Operaإلىr Description
+ إضافة
- طرح
* تضاعف
/ القسمة (لكن تذكر ، بما أن التوسيع يدعم فقط الحساب الصحيح ، فإن النتائج هي أعداد صحيحة).
٪ Modulo ، والتي تعني ببساطة ، "الباقي".
** الأسي
المسافات ليست مهمة في التعبيرات الحسابية وقد تتداخل التعبيرات. على سبيل المثال ، لضرب 5 تربيع في 3:
[me @ linuxbox ~] $ صدى $ (($ ((5 ** 2)) * 3))
75
[me @ linuxbox ~] $ صدى $ (($ ((5 ** 2)) * 3))
75
يمكن استخدام الأقواس المفردة لتجميع العديد من التعبيرات الفرعية. باستخدام هذه التقنية ، يمكننا إعادة كتابة المثال أعلاه والحصول على نفس النتيجة باستخدام توسيع واحد بدلاً من اثنين:
[me @ linuxbox ~] $ صدى $ (((5 ** 2) * 3))
75
[me @ linuxbox ~] $ صدى $ (((5 ** 2) * 3))
75
فيما يلي مثال باستخدام عوامل القسمة والباقي. لاحظ تأثير الانقسام الداخلي:
[me @ linuxbox ~] $ صدى خمسة على اثنين يساوي $ ((5/2))
خمسة على اثنين يساوي 2
[me @ linuxbox ~] $ صدى مع بقاء $ ((5٪ 2)).
مع 1 متبقي.
[me @ linuxbox ~] $ صدى خمسة على اثنين يساوي $ ((5/2))
خمسة على اثنين يساوي 2
[me @ linuxbox ~] $ صدى مع بقاء $ ((5٪ 2)).
مع 1 متبقي.
تم تناول التوسع الحسابي بمزيد من التفصيل في الفصل 34.