از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
چگونه اعداد را در Bash مقایسه کنم؟
سرفصلهای مطلب
شما در مورد بسیاری از عملیات مقایسه ای که می توان برای کنتراست متغیرها در bash استفاده کرد، آموخته اید. اما گاهی اوقات، ممکن است با موقعیتهای متعددی روبرو شوید که در آنها باید اسکریپتهایی را برای انجام وظایف خاص توسعه دهید و اسکریپت را چندین بار بر اساس اجرا کنید. روی مقادیر اعداد صحیح خاص در bash. در این شرایط، ما می توانیم از عملگرهای bash برای مقایسه اعداد صحیح استفاده کنیم.
روش های مختلف مقایسه متغیرهای عدد صحیح در اسکریپت Bash:
برای مقایسه اعداد صحیح، از دو عملگر مهم در bash برای بدست آوردن مقایسهها استفاده میکنیم که پرانتز مربع و دوتایی هستند.
راه 01: پرانتزهای تک مربعی
“[]به مهاربندهای مربعی نیز برای آزمایش فرمان در برنامه نویسی bash به عنوان مهاربندهای مربعی تک گفته می شود. اجازه دهید نمونه هایی را بیاوریم که ایده bash scripting را نشان می دهد روی لینوکس، بنابراین ما می توانیم به سرعت عملگرهای مختلف bash را پیاده سازی کنیم. در اینجا چند نمونه از استفاده از عملگرهای مختلف در مهاربندهای تک مربعی آورده شده است.
مثال 01: استفاده از اپراتورهای “-eq” و “-ne”.
اجازه دهید عملگر “-eq” را عملی کنیم، که تعیین می کند آیا چندین متغیر در برنامه نویسی bash معادل هستند یا خیر به عنوان نمایش اولیه یک عملگر مقایسه. برای شروع عملی کردن مثال، ابتدا باید با استفاده از کلمه کلیدی “touch” در نام فایل و افزودن پسوند “sh” یک فایل برنامه نویسی bash ایجاد کنیم. کل دستور ایجاد فایل به صورت زیر است:
وقتی دستور فوق وارد شد، فایلی به نام compare.sh تولید می شود. برای اینکه بتوانیم کد را عملی کنیم، سپس می خواهیم وارد ویرایشگر “nano” شویم. برای انجام این کار، دستور compare.sh را بعد از کلمه کلیدی “nano” مانند شکل زیر اضافه می کنیم:
ویرایشگر نانو پس از فشردن ورودی اجرا می شود. برای اینکه بتوانیم دو عدد صحیح را با هم مقایسه کنیم باید کد لازم را در این قسمت بنویسیم.
1: برابر با اپراتور “-eq”.
ما در این کد از دو متغیر به نامهای “variable1” و “variable2” استفاده کردهایم و از کلمه کلیدی “read” استفاده کردهایم که مقادیر این متغیرها را از کاربر دریافت میکند. روی زمان اجرا، به ترتیب. سپس از عبارت “if” برای تعیین اینکه آیا اعداد صحیح برابر هستند یا خیر استفاده شد.
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر [ $variable1 -eq $variable2 ];
سپس
اکو “هر دو متغیر عدد صحیح ورودی برابر هستند…”
دیگر
پژواک”هر دو متغیر عدد صحیح ورودی برابر نیستند…”
فی
برای بستن ویرایشگر نانو پس از پایان نوشتن برنامه، عبارت ctrl + x را تایپ کنید. سپس به لینوکس اصلی بازگشتیم terminal یکبار دیگر. برای اجرای کد، “bash” و نام فایل را بنویسید.
نتیجه اجرای کد نشان داده شده در بالا در اینجا مشاهده می شود:
100
یک متغیر عدد صحیح ورودی 2 وارد کنید:
100
هر دو متغیر عدد صحیح ورودی برابر هستند …
2: با اپراتور “-ne” برابر نیست
اکنون از عملگر مقایسه “-ne” استفاده خواهیم کرد که به معنای “برابر نیست”. از طریق این عملگر، بررسی می کنیم که “variable1” با “variable2” در برنامه نویسی bash برابر نیست. برای این کار، ما تغییراتی را در همان فایل بالا انجام داده ایم که عبارت است از “مقایسه”. ش». در کد اصلاح شده، ما فقط مقادیر و عملگر “-eq” را با “-ne” مطابق شکل زیر تغییر دادیم:
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر [ $variable1 -ne $variable2 ];
سپس
اکو “هر دو متغیر عدد صحیح ورودی برابر نیستند…”
دیگر
پژواک”هر دو متغیر اعداد صحیح ورودی برابر هستند…”
فی
خروجی مورد نظر در تصویر زیر نشان داده شده است:
50
یک متغیر عدد صحیح ورودی 2 وارد کنید:
100
هر دو متغیر عدد صحیح ورودی برابر نیستند…
مثال 02: استفاده از اپراتورهای “-gt” و “-lt”.
این تصویر دیگری از روش استفاده از عملگرهای مقایسه “-gt” و “-lt” در کد است. ما ارزیابی خواهیم کرد که آیا “متغیر 1” بزرگتر یا کمتر از “متغیر2” در نمونه است.
1: بزرگتر از عملگر “-gt”.
ابتدا تعیین می کنیم که آیا متغیر 1 از متغیر 2 فراتر می رود یا نه.
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر [ $variable1 -gt $variable2 ];
سپس
اکو “متغیر 1 بزرگتر از متغیر 2 است…”
دیگر
اکو “متغیر 1 بزرگتر از متغیر 2 نیست…”
فی
وقتی اسکریپت را اجرا کردیم، نتیجه نشان داد که “متغیر 1” بزرگتر از “متغیر 2” است.
98
یک متغیر عدد صحیح ورودی 2 وارد کنید:
96
متغیر 1 بزرگتر از متغیر 2 است…
2: کمتر از اپراتور “-lt”.
اکنون، با استفاده از عملگر “-lt” در برنامه نویسی bash، تعیین خواهیم کرد که آیا “متغیر 1” از “متغیر 2” کمتر است یا خیر.
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر [ $variable1 -lt $variable2 ];
سپس
اکو «متغیر 1 است کمتر از متغیر2…”
دیگر
اکو “متغیر 1 کمتر از متغیر 2 نیست…”
فی
نتایج مثال بالا را در نظر بگیرید:
96
یک متغیر عدد صحیح ورودی 2 وارد کنید:
98
متغیر 1 است کمتر از متغیر2…
مثال 03: استفاده از عملگر “-ge” و “-le”.
در این مثال، بررسی خواهیم کرد که آیا متغیر 1 بزرگتر یا کوچکتر از متغیر 2 است و آیا ممکن است برابر با متغیر 2 باشد یا نه.
1: بزرگتر یا مساوی با اپراتور “-ge”:
ما از عملگر “-ge” استفاده می کنیم تا بررسی کنیم که “متغیر 1” دارای مقدار بیشتری است یا مقدار برابر با “متغیر2”.
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر [ $variable1 -ge $variable2 ];
سپس
اکو “متغیر 1 بزرگتر یا مساوی با متغیر 2 است…”
دیگر
اکو “متغیر 1 بزرگتر یا مساوی با متغیر 2 نیست…”
فی
با نوشتن “bash compare.sh” خروجی مورد نظر را داریم:
25
یک متغیر عدد صحیح ورودی 2 وارد کنید:
24
متغیر 1 بزرگتر یا مساوی با متغیر 2 است…
2: کمتر یا برابر با اپراتور “-le”.
اکنون از عملگر “-le” در کد موجود استفاده می کنیم تا بتوانیم بررسی کنیم که آیا مقدار “variable1” کمتر یا مساوی با مقدار “variable2” است یا خیر.
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر [ $variable1 -le $variable2 ];
سپس
اکو متغیر 1 است کمتر بیشتر یا مساوی با متغیر 2…”
دیگر
اکو “متغیر 1 کمتر یا مساوی متغیر 2 نیست…”
فی
به خروجی لینوکس نگاه کنید terminal:
11
یک متغیر عدد صحیح ورودی 2 وارد کنید:
11
متغیر 1 است کمتر بیشتر یا مساوی با متغیر 2…
راه 02: پرانتزهای مربعی دوتایی
“[]]” مهاربندهای دوتایی همان کار مهاربندهای تک مربعی در bash را انجام می دهند. اما در مقابل، bash چیزی را بر نمی گرداند به جز 0 اگر شرط درست باشد و 1 اگر شرط نادرست باشد. حال قصد داریم نمونه های مختلفی از روش دوم استفاده از عملگر مقایسه را در برنامه نویسی bash پیاده سازی کنیم.
مثال 01: استفاده از اپراتور (<) و (>).
در زیر وضعیت مشخصی از یک مهاربندی مربع دوتایی است که در آن نشانگرهای “>” و “<" را برای تعیین اینکه آیا مقدار "variable1" بزرگتر یا کمتر از پارامتر "variable2" است، اعمال خواهیم کرد. اول، ما یک فایل کاملاً جدید برای تکنیک دو براکت مربع برای آن ایجاد کرده ایم:
برای ورود به ویرایشگر نانو از دستور nano استفاده کرده ایم:
ویرایشگر فعلی ما ویرایشگر نانو است. اجازه دهید با نوشتن چند کد شروع کنیم:
1: کمتر از اپراتور “<".
در اینجا مثال کمتر از، که در آن ما دو متغیر داریم، و مقادیر را از کاربر دریافت می کنیم، بنابراین از “read” استفاده کرده ایم. سپس، کمتر از عملیات را انجام خواهیم داد روی این متغیرها
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر (( متغیر $1 < متغیر $2 ));
سپس
اکو “شرط درست است”
اکو “بازگشت 0”
دیگر
اکو “شرط نادرست است”
اکو “بازگشت 1”
فی
برای کامپایل اسکریپت از دستور bash به همراه نام فایل استفاده کرده ایم:
در اینجا خروجی است:
76
یک متغیر عدد صحیح ورودی 2 وارد کنید:
102
شرط درست است
برگشت 0
2: اپراتور بزرگتر از “>”.
اکنون از عملگر بعدی، نماد “>” برای تعیین اینکه آیا مقدار “variable1” بزرگتر است یا خیر استفاده خواهیم کرد. همانطور که می بینید، در این مورد:
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر (( متغیر $1 > متغیر $2 ));
سپس
اکو “شرط درست است”
اکو “بازگشت 0”
دیگر
اکو “شرط نادرست است”
اکو “بازگشت 1”
فی
پس از اجرای اسکریپت در لینوکس terminal، این خروجی را به دست آوردیم:
27
یک متغیر عدد صحیح ورودی 2 وارد کنید:
22
شرط درست است
برگشت 0
مثال 02: استفاده از اپراتورهای (<=) و (>=).
اکنون که مثال دوم پیادهسازی شده است، میتوانیم از عملگر اسکریپت bash “>=” برای تعیین اینکه مقدار متغیر1 کمتر یا مساوی با مقدار متغیر2 است استفاده کنیم.
1: کمتر یا برابر با اپراتور “<=".
در این صورت مقدار کمتر یا مساوی در این متغیرها را بررسی کرده و خروجی را چاپ می کنیم.
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر (( متغیر $1 <= متغیر $2 ));
سپس
اکو “شرط درست است”
اکو “بازگشت 0”
دیگر
اکو “شرط نادرست است”
اکو “بازگشت 1”
فی
نتیجه نمایش فوق در تصویر زیر نمایش داده می شود:
65
یک متغیر عدد صحیح ورودی 2 وارد کنید:
65
شرط درست است
برگشت 0
2: بزرگتر یا مساوی با اپراتور “>=”.
در مثال زیر، عملگر “>=” از برنامه نویسی bash برای بررسی اینکه آیا “D1” و “D2” مقادیر بزرگتر یا مساوی دارند یا خیر استفاده می شود.
خواندن متغیر 1
اکو یک متغیر عدد صحیح ورودی 2 را وارد کنید:
خواندن متغیر2
اگر (( متغیر $1 >= متغیر $2 ));
سپس
اکو “شرط درست است”
اکو “بازگشت 0”
دیگر
اکو “شرط نادرست است”
اکو “بازگشت 1”
فی
پیروی از نتایج مورد نظر مثال:
44
یک متغیر عدد صحیح ورودی 2 وارد کنید:
44
شرط درست است
برگشت 0
نتیجه
ما یاد گرفتیم که چگونه از اسکریپت bash برای مقایسه اعداد صحیح استفاده کنیم. علاوه بر این، روش استفاده از چندین عملگر در یک اسکریپت bash را توضیح دادیم. با توضیحات کامل، نمونه های متعددی از این عملگرها را در برنامه نویسی bash ساخته ایم.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 08:05:04