حساب ساده
عملگرهای محاسباتی معمولی در جدول زیر آمده است:
جدول 34-3: عملگرهای حسابی
توضیحات اپراتور
توضیحات اپراتور
+ اضافه
- تفریق
* ضرب
/ تقسیم عدد صحیح
** انعکاس
% مدول (باقی مانده)
بسیاری از اینها خود توضیحی هستند، اما تقسیم عدد صحیح و مدول نیاز به بحث بیشتری دارد.
از آنجایی که محاسبات پوسته فقط بر روی اعداد صحیح عمل می کند، نتایج تقسیم همیشه اعداد کامل هستند:
[me@linuxbox ~]$ echo $(( 5 / 2 ))
2
[me@linuxbox ~]$ echo $(( 5 / 2 ))
2
این امر تعیین باقیمانده در عملیات تقسیم را مهم تر می کند:
[me@linuxbox ~]$ echo $(( 5 % 2 ))
1
[me@linuxbox ~]$ echo $(( 5 % 2 ))
1
با استفاده از عملگرهای تقسیم و مدول، می توانیم تعیین کنیم که تقسیم 5 بر 2 به 2 و باقیمانده 1 منجر می شود.
محاسبه باقی مانده در حلقه ها مفید است. این اجازه می دهد تا یک عملیات در فواصل زمانی مشخص در طول اجرای حلقه انجام شود. در مثال زیر، خطی از اعداد را نمایش می دهیم که هر مضرب 5 را برجسته می کنیم:
#! / bin / bash
# modulo: عملگر مدول را برای ((i = 0; i <= 20; i = i + 1)) نشان می دهد. انجام دادن
باقیمانده=$((i % 5))
اگر (( باقیمانده == 0 )); سپس printf "<%d>" $i
دیگر
printf "%d" $i
فی انجام شد
printf "\ n"
#! / bin / bash
# modulo: عملگر مدول را برای ((i = 0; i <= 20; i = i + 1)) نشان می دهد. انجام دادن
باقیمانده=$((i % 5))
اگر (( باقیمانده == 0 )); سپس printf "<%d>" $i
دیگر
printf "%d" $i
فی انجام شد
printf "\ n"
هنگام اجرا، نتایج به صورت زیر است:
[me@linuxbox ~]$ مدول
<0> 1 2 3 4 <5> 6 7 8 9 <10> 11 12 13 14 <15> 16 17 18 19 <20>
[me@linuxbox ~]$ مدول
<0> 1 2 3 4 <5> 6 7 8 9 <10> 11 12 13 14 <15> 16 17 18 19 <20>