بسط حسابی
پوسته اجازه می دهد تا محاسبات با بسط انجام شود. این به ما امکان می دهد از دستور shell به عنوان یک ماشین حساب استفاده کنیم:
[me@linuxbox ~]$ echo $((2 + 2))
4
[me@linuxbox ~]$ echo $((2 + 2))
4
بسط حسابی از شکل زیر استفاده می کند:
$((بیان))
جایی که بیان یک عبارت حسابی متشکل از مقادیر و عملگرهای حسابی است.
بسط حسابی فقط از اعداد صحیح (اعداد کامل، بدون اعشار) پشتیبانی می کند، اما می تواند تعداد زیادی عملیات مختلف را انجام دهد. در اینجا تعدادی از اپراتورهای پشتیبانی شده وجود دارد:
جدول 7-1: عملگرهای حسابی
Operaبهr Description
+ اضافه
- تفریق
* ضرب
/ تقسیم (اما به یاد داشته باشید، از آنجایی که بسط فقط از محاسبات اعداد صحیح پشتیبانی می کند، نتایج اعداد صحیح هستند).
% Modulo، که به سادگی به معنای "باقی مانده" است.
** انعکاس
فاصله ها در عبارات حسابی مهم نیستند و عبارات ممکن است تودرتو باشند. برای مثال، برای ضرب 5 در 3:
[me@linuxbox ~]$ echo $(($((5**2)) * 3))
75
[me@linuxbox ~]$ echo $(($((5**2)) * 3))
75
از پرانتزهای تکی ممکن است برای گروه بندی عبارات فرعی متعدد استفاده شود. با این تکنیک، میتوانیم مثال بالا را بازنویسی کنیم و با استفاده از یک بسط به جای دو، همان نتیجه را به دست آوریم:
[me@linuxbox ~]$ echo $(((5**2) * 3))
75
[me@linuxbox ~]$ echo $(((5**2) * 3))
75
در اینجا یک مثال با استفاده از عملگرهای تقسیم و باقی مانده آورده شده است. به تأثیر تقسیم عدد صحیح توجه کنید:
[me@linuxbox ~]$ echo Five تقسیم بر دو برابر $((5/2))
تقسیم بر دو برابر 2
[me@linuxbox ~]$ اکو با $((5%2)) باقی مانده است.
با 1 عدد باقی مانده
[me@linuxbox ~]$ echo Five تقسیم بر دو برابر $((5/2))
تقسیم بر دو برابر 2
[me@linuxbox ~]$ اکو با $((5%2)) باقی مانده است.
با 1 عدد باقی مانده
بسط حسابی با جزئیات بیشتری در فصل 34 پوشش داده شده است.