از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
bc برای انجام عملیات حسابی پیشرفته در BASH
سرفصلهای مطلب
ماشین حساب پایه، همچنین به عنوان ‘bc’ شناخته می شود، یک لینوکس است command-line ابزار مورد استفاده برای انجام محاسبات و جبر پیشرفته در bash اسکریپت ها بسیاری از توابع ریاضی مختلف مانند سینوس، کسینوس، مماس، لگاریتم طبیعی را در bash. Bash نمی تواند عملیات حسابی پیشرفته مانند مقایسه شناورها را انجام دهد. اینجاست که bc به کار می آید. قبل از دستور ‘bc’ ‘dc’ (ماشین حساب میز)، یک ابزار یونیکس آمده است. در این آموزش از دستور ‘bc’ برای انجام عملیات حسابی پیشرفته استفاده می کنیم.
انجام عملیات حسابی پایه
عملیات ساده حسابی مانند جمع، تفریق، تقسیم و ضرب را می توان با استفاده از دستور ‘bc’ انجام داد. نحو برای اعمال عملگرهای باینری ساده در bash استفاده از دستور ‘bc’ به شرح زیر است.
در این قسمت از دستور ‘bc’ برای انجام عملیات ساده حسابی استفاده می کنیم.
ubuntu@ubuntu:~$ num2=1.223353
ubuntu@ubuntu:~$ echo “$num1+$num2” | قبل از میلاد مسیح
3.576578
ubuntu@ubuntu:~$ echo “$num1–$num2” | قبل از میلاد مسیح
1.129872
ubuntu@ubuntu:~$ echo “$num1*$num2” | قبل از میلاد مسیح
2.878824
ubuntu@ubuntu:~$ echo “$num1/$num2” | قبل از میلاد مسیح
1
در مثال بالا هنگام انجام تقسیم نتیجه را بدون اعشار بدست آوردیم. برای رسیدن به نتیجه تا نقطه اعشار ‘n’، باید مقدار مقیاس را همانطور که در مثال زیر نشان داده شده است روی ‘n’ تنظیم کنیم.
1.9235862420
از طرف دیگر، میتوانیم از پرچم «-l» و دستور «bc» برای دریافت خروجی اعشاری استفاده کنیم.
1.92358624207403750184
دستور ‘bc’ همچنین می تواند برای انجام تقسیم مدول و محاسبه توان یک عدد استفاده شود bash اسکریپت ها
2
ubuntu@ubuntu:~$ echo “10^2” | قبل از میلاد مسیح
100
انجام عملیات حسابی پیشرفته
تا کنون، ما از دستور ‘bc’ برای انجام برخی از عملیات های اساسی حسابی مانند جمع، تفریق، ضرب و غیره استفاده کرده ایم. در این بخش از دستور ‘bc’ برای انجام برخی عملیات حسابی پیشرفته استفاده می کنیم. ما در مورد چگونگی استفاده از عملگرهای مقایسه، عملگرهای منطقی یا بولی، توابع ریاضی پیشرفته و جملات شرطی بحث خواهیم کرد. bash با استفاده از دستور ‘bc’
اپراتورهای مقایسه
عملگرهای مقایسه دو عدد را می گیرند، آنها را با هم مقایسه می کنند و سپس برمی گردند 1 یا 0 بسته به مقایسه اگر مقایسه درست باشد، نتیجه آن است درست (1); در غیر این صورت، آن است نادرست (0). در زیر چند نمونه از عملگرهای مقایسه آورده شده است.
- num1 > num2: این مقایسه باز خواهد گشت 1 اگر num1 بزرگتر از num2.
- num1 < num2: نتیجه خواهد شد 1 اگر num1 کمتر از num2.
- num1 <= num2: نتیجه خواهد شد 1 اگر num1 کمتر یا مساوی است num2.
- num1 >= num2: نتیجه خواهد شد 1 اگر num1 بزرگتر یا مساوی است num2.
- num1 == num2: نتیجه خواهد شد 1 اگر num1 برابر است با num2.
- num1 != num2: نتیجه خواهد شد 1 اگر هر دو عدد برابر نباشند
در زیر چند نمونه از عملگرهای مقایسه استفاده شده همراه با دستور ‘bc’ آورده شده است.
1
ubuntu@ubuntu:~$ echo “4!=4” | قبل از میلاد مسیح
0
ubuntu@ubuntu:~$ echo “2>5” | قبل از میلاد مسیح
0
ubuntu@ubuntu:~$ echo “4<=4” | قبل از میلاد مسیح
1
عملگرهای بولی
عملگرهای Boolean یا Logical در دستورات شرطی برای انجام برخی تصمیمات منطقی استفاده می شوند. در زیر سه عملگر منطقی اصلی آورده شده است.
- stat1 && stat2: این باز خواهد گشت 1 اگر هر دو عبارت باشند غیر صفر.
- stat1 || stat2: این باز خواهد گشت 1 اگر هر یک از عبارات باشد غیر صفر.
- ! آمار: این باز خواهد گشت 1 اگر بیانیه باشد غیر صفر و بالعکس.
مثالهای زیر روش استفاده از عملگرهای منطقی با دستور bc را نشان میدهند.
0
ubuntu@ubuntu:~$ echo “-1 || 0” | قبل از میلاد مسیح
1
ubuntu@ubuntu:~$ echo “! 0” | قبل از میلاد مسیح
1
اظهارات مشروط
دستورات شرطی بسته به شرایط اعمال شده برای اجرای دستورات خاص استفاده می شود. شرط اعمال شده در دستور شرطی شامل عملگرهای منطقی و مقایسه است. در زیر مثالی از دستورات شرطی با دستور ‘bc’ آورده شده است.
ubuntu@ubuntu:~$ ب=20
ubuntu@ubuntu:~$ echo ‘ اگر(آ>ب) print “الف بزرگتر است” دیگر print “b بزرگتر است” | قبل از میلاد مسیح -ل
b بزرگتر است
در مثال بالا، عبارت بررسی می کند که a بزرگتر از b است یا خیر. اگر a بزرگتر از b باشد، خواهد شد print “الف بزرگتر است”؛ در غیر این صورت، خواهد شد print “b بزرگتر است.” ما می توانیم هر شرطی را با استفاده از عملگرهای بولی و مقایسه در مثال بالا اعمال کنیم.
توابع ریاضی
دستور ‘bc’ همچنین برخی از توابع ریاضی داخلی را ارائه می دهد که می توانیم بدون تعریف آنها از آنها استفاده کنیم. در زیر برخی از توابع ضروری مورد استفاده با دستور ‘bc’ در زیر آمده است bash.
- s(x): سینوس x را که x بر حسب رادیان است برمی گرداند
- c(x): کسینوس x را که x بر حسب رادیان است برمی گرداند
- تبر): مماس x را برمی گرداند و نتیجه بر حسب رادیان است
- sqrt(x): جذر x را برمی گرداند. وقتی x منفی باشد باعث خطای زمان اجرا می شود
- l(x): گزارش طبیعی x را برمی گرداند.
این توابع را می توان با دستور ‘bc’ استفاده کرد، همانطور که در مثال های زیر نشان داده شده است.
ubuntu@ubuntu:~$ echo “س($pi/2)” | قبل از میلاد مسیح -ل
1
ubuntu@ubuntu:~$ echo ج($pi/2)” | قبل از میلاد مسیح -ل
0
ubuntu@ubuntu:~$ echo “آ(1)” | قبل از میلاد مسیح -ل
0.7854
جذر یک عدد را می توان در محاسبه کرد bash با استفاده از دستور ‘bc’ همانطور که در شکل زیر نشان داده شده است.
2
در حالی که سعی می کنید جذر یک عدد منفی را محاسبه کنید، پوسته یک خطای زمان اجرا ایجاد می کند.
خطای زمان اجرا (تابع=(اصلی)، adr=4): جذر یک عدد منفی
لگاریتم طبیعی یک عدد را می توان در محاسبه کرد bash با استفاده از دستور ‘bc’ به صورت زیر.
.69314718055994530941
نتیجه
هنگام نوشتن اسکریپت های اتوماسیون در bash، گاهی برای اجرای دستورات به توابع ریاضی پیشرفته و عملگرهای منطقی نیاز داریم. دستور ‘bc’ بسیاری از توابع و عملگرهای ریاضی پیشرفته را برای انجام محاسبات حسابی سطح بالا ارائه می دهد. در این آموزش استفاده از دستور ‘bc’ برای انجام عملیات حسابی پیشرفته در آن بحث شده است bash.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 01:51:05