وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

چگونه اعداد را در Bash مقایسه کنم؟

0 6
زمان لازم برای مطالعه: 6 دقیقه


شما در مورد بسیاری از عملیات مقایسه ای که می توان برای کنتراست متغیرها در bash استفاده کرد، آموخته اید. اما گاهی اوقات، ممکن است با موقعیت‌های متعددی روبرو شوید که در آن‌ها باید اسکریپت‌هایی را برای انجام وظایف خاص توسعه دهید و اسکریپت را چندین بار بر اساس اجرا کنید. روی مقادیر اعداد صحیح خاص در bash. در این شرایط، ما می توانیم از عملگرهای bash برای مقایسه اعداد صحیح استفاده کنیم.

روش های مختلف مقایسه متغیرهای عدد صحیح در اسکریپت Bash:

برای مقایسه اعداد صحیح، از دو عملگر مهم در bash برای بدست آوردن مقایسه‌ها استفاده می‌کنیم که پرانتز مربع و دوتایی هستند.

راه 01: پرانتزهای تک مربعی

“[]به مهاربندهای مربعی نیز برای آزمایش فرمان در برنامه نویسی bash به عنوان مهاربندهای مربعی تک گفته می شود. اجازه دهید نمونه هایی را بیاوریم که ایده bash scripting را نشان می دهد روی لینوکس، بنابراین ما می توانیم به سرعت عملگرهای مختلف bash را پیاده سازی کنیم. در اینجا چند نمونه از استفاده از عملگرهای مختلف در مهاربندهای تک مربعی آورده شده است.

مثال 01: استفاده از اپراتورهای “-eq” و “-ne”.

اجازه دهید عملگر “-eq” را عملی کنیم، که تعیین می کند آیا چندین متغیر در برنامه نویسی bash معادل هستند یا خیر به عنوان نمایش اولیه یک عملگر مقایسه. برای شروع عملی کردن مثال، ابتدا باید با استفاده از کلمه کلیدی “touch” در نام فایل و افزودن پسوند “sh” یک فایل برنامه نویسی bash ایجاد کنیم. کل دستور ایجاد فایل به صورت زیر است:

linux@linux-VirtualBox:~$ دست زدن به مقایسه کنید.ش

وقتی دستور فوق وارد شد، فایلی به نام compare.sh تولید می شود. برای اینکه بتوانیم کد را عملی کنیم، سپس می خواهیم وارد ویرایشگر “nano” شویم. برای انجام این کار، دستور compare.sh را بعد از کلمه کلیدی “nano” مانند شکل زیر اضافه می کنیم:

linux@linux-VirtualBox:~$ نانو مقایسه کنید.ش

ویرایشگر نانو پس از فشردن ورودی اجرا می شود. برای اینکه بتوانیم دو عدد صحیح را با هم مقایسه کنیم باید کد لازم را در این قسمت بنویسیم.

1: برابر با اپراتور “-eq”.

ما در این کد از دو متغیر به نام‌های “variable1” و “variable2” استفاده کرده‌ایم و از کلمه کلیدی “read” استفاده کرده‌ایم که مقادیر این متغیرها را از کاربر دریافت می‌کند. روی زمان اجرا، به ترتیب. سپس از عبارت “if” برای تعیین اینکه آیا اعداد صحیح برابر هستند یا خیر استفاده شد.

اکو یک متغیر عدد صحیح ورودی 1 وارد کنید:
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر [ $variable1 -eq $variable2 ];
سپس

اکو “هر دو متغیر عدد صحیح ورودی برابر هستند…”
دیگر
پژواک”
هر دو متغیر عدد صحیح ورودی برابر نیستند…”
فی

برای بستن ویرایشگر نانو پس از پایان نوشتن برنامه، عبارت ctrl + x را تایپ کنید. سپس به لینوکس اصلی بازگشتیم terminal یکبار دیگر. برای اجرای کد، “bash” و نام فایل را بنویسید.

linux@linux-VirtualBox:~$ ضربه شدید مقایسه کنید.ش

نتیجه اجرای کد نشان داده شده در بالا در اینجا مشاهده می شود:

یک متغیر عدد صحیح ورودی 1 وارد کنید:
100

یک متغیر عدد صحیح ورودی 2 وارد کنید:
100

هر دو متغیر عدد صحیح ورودی برابر هستند …

2: با اپراتور “-ne” برابر نیست

اکنون از عملگر مقایسه “-ne” استفاده خواهیم کرد که به معنای “برابر نیست”. از طریق این عملگر، بررسی می کنیم که “variable1” با “variable2” در برنامه نویسی bash برابر نیست. برای این کار، ما تغییراتی را در همان فایل بالا انجام داده ایم که عبارت است از “مقایسه”. ش». در کد اصلاح شده، ما فقط مقادیر و عملگر “-eq” را با “-ne” مطابق شکل زیر تغییر دادیم:

اکو یک متغیر عدد صحیح ورودی 1 وارد کنید:
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر [ $variable1 -ne $variable2 ];
سپس

پیشنهاد می‌کنیم بخوانید:  اسکریپت های شل – چه چیزی را می توانید تغییر دهید

اکو “هر دو متغیر عدد صحیح ورودی برابر نیستند…”
دیگر
پژواک”
هر دو متغیر اعداد صحیح ورودی برابر هستند…”
فی

خروجی مورد نظر در تصویر زیر نشان داده شده است:

یک متغیر عدد صحیح ورودی 1 وارد کنید:
50

یک متغیر عدد صحیح ورودی 2 وارد کنید:
100

هر دو متغیر عدد صحیح ورودی برابر نیستند…

مثال 02: استفاده از اپراتورهای “-gt” و “-lt”.

این تصویر دیگری از روش استفاده از عملگرهای مقایسه “-gt” و “-lt” در کد است. ما ارزیابی خواهیم کرد که آیا “متغیر 1” بزرگتر یا کمتر از “متغیر2” در نمونه است.

1: بزرگتر از عملگر “-gt”.

ابتدا تعیین می کنیم که آیا متغیر 1 از متغیر 2 فراتر می رود یا نه.

اکو یک متغیر عدد صحیح ورودی 1 وارد کنید:
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر [ $variable1 -gt $variable2 ];
سپس

اکو “متغیر 1 بزرگتر از متغیر 2 است…”
دیگر

اکو “متغیر 1 بزرگتر از متغیر 2 نیست…”
فی

وقتی اسکریپت را اجرا کردیم، نتیجه نشان داد که “متغیر 1” بزرگتر از “متغیر 2” است.

یک متغیر عدد صحیح ورودی 1 وارد کنید:
98

یک متغیر عدد صحیح ورودی 2 وارد کنید:
96

متغیر 1 بزرگتر از متغیر 2 است…

2: کمتر از اپراتور “-lt”.

اکنون، با استفاده از عملگر “-lt” در برنامه نویسی bash، تعیین خواهیم کرد که آیا “متغیر 1” از “متغیر 2” کمتر است یا خیر.

اکو یک متغیر عدد صحیح ورودی 1 وارد کنید:
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر [ $variable1 -lt $variable2 ];
سپس

اکو «متغیر 1 است کمتر از متغیر2…”
دیگر

اکو “متغیر 1 کمتر از متغیر 2 نیست…”
فی

نتایج مثال بالا را در نظر بگیرید:

یک متغیر عدد صحیح ورودی 1 وارد کنید:
96

یک متغیر عدد صحیح ورودی 2 وارد کنید:
98

متغیر 1 است کمتر از متغیر2…

مثال 03: استفاده از عملگر “-ge” و “-le”.

در این مثال، بررسی خواهیم کرد که آیا متغیر 1 بزرگتر یا کوچکتر از متغیر 2 است و آیا ممکن است برابر با متغیر 2 باشد یا نه.

1: بزرگتر یا مساوی با اپراتور “-ge”:

ما از عملگر “-ge” استفاده می کنیم تا بررسی کنیم که “متغیر 1” دارای مقدار بیشتری است یا مقدار برابر با “متغیر2”.

اکو یک متغیر عدد صحیح ورودی 1 وارد کنید:
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر [ $variable1 -ge $variable2 ];
سپس

اکو “متغیر 1 بزرگتر یا مساوی با متغیر 2 است…”
دیگر

اکو “متغیر 1 بزرگتر یا مساوی با متغیر 2 نیست…”
فی

با نوشتن “bash compare.sh” خروجی مورد نظر را داریم:

یک متغیر عدد صحیح ورودی 1 وارد کنید:
25

یک متغیر عدد صحیح ورودی 2 وارد کنید:
24

متغیر 1 بزرگتر یا مساوی با متغیر 2 است…

2: کمتر یا برابر با اپراتور “-le”.

اکنون از عملگر “-le” در کد موجود استفاده می کنیم تا بتوانیم بررسی کنیم که آیا مقدار “variable1” کمتر یا مساوی با مقدار “variable2” است یا خیر.

اکو یک متغیر عدد صحیح ورودی 1 وارد کنید:
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر [ $variable1 -le $variable2 ];
سپس

اکو متغیر 1 است کمتر بیشتر یا مساوی با متغیر 2…”
دیگر

اکو “متغیر 1 کمتر یا مساوی متغیر 2 نیست…”
فی

به خروجی لینوکس نگاه کنید terminal:

یک متغیر عدد صحیح ورودی 1 وارد کنید:
11

پیشنهاد می‌کنیم بخوانید:  چگونه از Grep برای جستجوی یک فایل استفاده کنم؟ روی لینوکس؟

یک متغیر عدد صحیح ورودی 2 وارد کنید:
11

متغیر 1 است کمتر بیشتر یا مساوی با متغیر 2…

راه 02: پرانتزهای مربعی دوتایی

“[]]” مهاربندهای دوتایی همان کار مهاربندهای تک مربعی در bash را انجام می دهند. اما در مقابل، bash چیزی را بر نمی گرداند به جز 0 اگر شرط درست باشد و 1 اگر شرط نادرست باشد. حال قصد داریم نمونه های مختلفی از روش دوم استفاده از عملگر مقایسه را در برنامه نویسی bash پیاده سازی کنیم.

مثال 01: استفاده از اپراتور (<) و (>).

در زیر وضعیت مشخصی از یک مهاربندی مربع دوتایی است که در آن نشانگرهای “>” و “<" را برای تعیین اینکه آیا مقدار "variable1" بزرگتر یا کمتر از پارامتر "variable2" است، اعمال خواهیم کرد. اول، ما یک فایل کاملاً جدید برای تکنیک دو براکت مربع برای آن ایجاد کرده ایم:

linux@linux-VirtualBox:~$ دست زدن به دوبل.ش

برای ورود به ویرایشگر نانو از دستور nano استفاده کرده ایم:

linux@linux-VirtualBox:~$ نانو دوبل.ش

ویرایشگر فعلی ما ویرایشگر نانو است. اجازه دهید با نوشتن چند کد شروع کنیم:

1: کمتر از اپراتور “<".

در اینجا مثال کمتر از، که در آن ما دو متغیر داریم، و مقادیر را از کاربر دریافت می کنیم، بنابراین از “read” استفاده کرده ایم. سپس، کمتر از عملیات را انجام خواهیم داد روی این متغیرها

اکو یک متغیر عدد صحیح ورودی 1 وارد کنید:
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر (( متغیر $1 < متغیر $2 ));
سپس

اکو “شرط درست است”

اکو “بازگشت 0”

دیگر

اکو “شرط نادرست است”

اکو “بازگشت 1”
فی

برای کامپایل اسکریپت از دستور bash به همراه نام فایل استفاده کرده ایم:

linux@linux-VirtualBox:~$ ضربه شدید دوبل.ش

در اینجا خروجی است:

یک متغیر عدد صحیح ورودی 1 وارد کنید:
76

یک متغیر عدد صحیح ورودی 2 وارد کنید:
102

شرط درست است
برگشت 0

2: اپراتور بزرگتر از “>”.

اکنون از عملگر بعدی، نماد “>” برای تعیین اینکه آیا مقدار “variable1” بزرگتر است یا خیر استفاده خواهیم کرد. همانطور که می بینید، در این مورد:

اکو یک متغیر عدد صحیح ورودی 1 وارد کنید:
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر (( متغیر $1 > متغیر $2 ));
سپس

اکو “شرط درست است”

اکو “بازگشت 0”

دیگر

اکو “شرط نادرست است”

اکو “بازگشت 1”
فی

پس از اجرای اسکریپت در لینوکس terminal، این خروجی را به دست آوردیم:

یک متغیر عدد صحیح ورودی 1 وارد کنید:
27

یک متغیر عدد صحیح ورودی 2 وارد کنید:
22

شرط درست است
برگشت 0

مثال 02: استفاده از اپراتورهای (<=) و (>=).

اکنون که مثال دوم پیاده‌سازی شده است، می‌توانیم از عملگر اسکریپت bash “>=” برای تعیین اینکه مقدار متغیر1 کمتر یا مساوی با مقدار متغیر2 است استفاده کنیم.

1: کمتر یا برابر با اپراتور “<=".

در این صورت مقدار کمتر یا مساوی در این متغیرها را بررسی کرده و خروجی را چاپ می کنیم.

اکو یک متغیر عدد صحیح ورودی 1 وارد کنید:
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر (( متغیر $1 <= متغیر $2 ));
سپس

اکو “شرط درست است”

اکو “بازگشت 0”

دیگر

اکو “شرط نادرست است”

اکو “بازگشت 1”
فی

نتیجه نمایش فوق در تصویر زیر نمایش داده می شود:

یک متغیر عدد صحیح ورودی 1 وارد کنید:
65

یک متغیر عدد صحیح ورودی 2 وارد کنید:
65

شرط درست است
برگشت 0

2: بزرگتر یا مساوی با اپراتور “>=”.

در مثال زیر، عملگر “>=” از برنامه نویسی bash برای بررسی اینکه آیا “D1” و “D2” مقادیر بزرگتر یا مساوی دارند یا خیر استفاده می شود.

اکو یک متغیر عدد صحیح ورودی 1 وارد کنید:
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر (( متغیر $1 >= متغیر $2 ));
سپس

اکو “شرط درست است”

اکو “بازگشت 0”

دیگر

اکو “شرط نادرست است”

اکو “بازگشت 1”
فی

پیروی از نتایج مورد نظر مثال:

یک متغیر عدد صحیح ورودی 1 وارد کنید:
44

یک متغیر عدد صحیح ورودی 2 وارد کنید:
44

شرط درست است
برگشت 0

نتیجه

ما یاد گرفتیم که چگونه از اسکریپت bash برای مقایسه اعداد صحیح استفاده کنیم. علاوه بر این، روش استفاده از چندین عملگر در یک اسکریپت bash را توضیح دادیم. با توضیحات کامل، نمونه های متعددی از این عملگرها را در برنامه نویسی bash ساخته ایم.

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-29 08:05:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید