از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش استفاده از دستورات Bash “If -Z” و “If -N” برای تست رشته
سرفصلهای مطلب
دستور “if” در Bash برای انشعاب شرطی مانند سایر زبان های برنامه نویسی استفاده می شود. دستور “if” را می توان برای بررسی شرایط مختلف در Bash استفاده کرد. انواع مختلف عملگرهای مقایسه، عملگرهای منطقی و گزینهها با عبارت «if» برای آزمایش استفاده میشوند. استفاده از گزینه های “-z” و “-n” برای آزمایش مقادیر رشته با استفاده از دستور “if” در Bash در این آموزش نشان داده شده است.
با استفاده از عبارت “If -Z”.
گاهی اوقات، لازم است بررسی شود که آیا متغیر رشته ای خالی است یا دارای رشته ای با طول صفر است. گزینه های زیادی در Bash برای انجام این کار وجود دارد. استفاده از گزینه “-z” با عبارت “if” یکی از راه های بررسی خالی بودن یا نبودن متغیر است. موارد استفاده از گزینه “if -z” در قسمت بعدی آموزش نشان داده شده است.
مثال 1: بررسی عبارت “If -Z” با استفاده از “[]”
یک فایل Bash با اسکریپت زیر ایجاد کنید که در آن از عبارت “if –z” با “[]” نشان داده شده است. دو ورودی از کاربر گرفته می شود. اگر هر یک از مقادیر ورودی خالی باشد، یک پیام خطا چاپ می شود. در غیر این صورت مجموع دو مقدار ورودی محاسبه و چاپ می شود.
#شماره اول را بخوانید
خواندن -پ “اولین عدد را وارد کنید:” n1
#عدد دوم را بخوانید
خواندن -پ “عدد دوم را وارد کنید:” n2
#بررسی کنید هر ورودی خالی است یا خیر
اگر [[ -z “$n1“ || -z “$n2“ ]]
سپس
#پیام خطا را چاپ کنید
اکو “شماره اول یا دوم خالی است.”
دیگر
#مجموع را محاسبه کنید
مجموع=$((n1 دلار+n2 دلار))
#مقدار جمع را چاپ کنید
اکو “مجموع n1 دلار و n2 دلار است $ مجموع“
فی
خروجی:
اگر اسکریپت بدون آرگومان اجرا شود خروجی زیر ظاهر می شود:
اگر اسکریپت با یک آرگومان اجرا شود خروجی زیر ظاهر می شود:
اگر اسکریپت با دو آرگومان اجرا شود خروجی زیر ظاهر می شود:
مثال 2: بررسی عبارت “If -Z” با دستور “Test”.
یک فایل Bash با اسکریپت زیر ایجاد کنید که در آن از عبارت “if –z” با “تست” فرمان نشان داده شده است. یک ورودی از کاربر گرفته می شود که باید عددی باشد. اگر مقدار ورودی خالی باشد، یک پیغام خطا چاپ می شود. اگر مقدار ورودی خالی نباشد اما حاوی مقدار عددی نباشد، پیام خطای دیگری چاپ میشود. اگر یک عدد صحیح به عنوان ورودی در نظر گرفته شود، مقدار ورودی چاپ می شود.
#مقدار سن را بخوانید
خواندن -پ “سن خود را وارد کنید: “ سن
#بررسی کنید که آیا مقدار ورودی خالی است یا خیر
اگر تست -z “سن دلار“
سپس
#پیام خطا را برای خالی چاپ کنید
اکو “مقدار ورودی خالی است.”
خروج
فی
#بررسی کنید که آیا مقدار ورودی عدد است یا خیر
اگر ! [[ $age =~ ^[0–9]+$ ]]; سپس
#پیام خطا را برای داده های غیر عددی چاپ کنید
اکو “مقدار سن باید یک عدد باشد.”
دیگر
#مقدار ورودی را چاپ کنید
اکو “شما هستید سن دلار ساله.”
فی
خروجی:
اگر اسکریپت با مقدار ورودی عددی اجرا شود، خروجی زیر ظاهر می شود:
اگر اسکریپت با مقدار ورودی رشته اجرا شود، خروجی زیر ظاهر می شود:
با استفاده از عبارت “If -N”.
گاهی اوقات، لازم است بررسی شود که آیا متغیر رشته ای خالی نیست یا دارای مقدار رشته ای بیشتر از طول صفر است. گزینه های زیادی در Bash برای انجام این کار وجود دارد. استفاده از گزینه “-n” با عبارت “if” یکی از راه های بررسی خالی نبودن یا نبودن متغیر است. موارد استفاده از گزینه “if -n” در قسمت بعدی آموزش نشان داده شده است.
مثال 1: بررسی عبارت “If -N” با استفاده از “[]”
یک فایل Bash با اسکریپت زیر ایجاد کنید که در آن از عبارت “if -n” با “[]” نشان داده شده است. یک مقدار ورودی از کاربر گرفته می شود. اگر مقدار ورودی خالی باشد، یک پیغام خطا چاپ می شود. در غیر این صورت، مقدار ورودی چاپ می شود.
#نام کتاب را بخوانید
خواندن -پ “نام کتاب را وارد کنید:” کتاب
#بررسی کنید که آیا ورودی غیر صفر است یا خیر
اگر ! [ -n “$book“ ]
سپس
#پیام خطا را چاپ کنید
اکو “نام کتاب نمی تواند خالی باشد.”
دیگر
#مقدار ورودی را چاپ کنید
اکو “نام کتاب است $book“
فی
خروجی:
اگر اسکریپت با هر مقدار ورودی اجرا شود خروجی زیر ظاهر می شود:
اگر اسکریپت با مقدار ورودی رشته ای اجرا شود، خروجی زیر ظاهر می شود:
مثال 2: بررسی عبارت “If -N” با دستور “Test”.
یک فایل Bash با اسکریپت زیر ایجاد کنید که در آن استفاده از عبارت “if –n” با دستور “test” نشان داده شده است. ورودی اول یک رشته و ورودی دوم عددی است. اگر هر دو مقدار ورودی خالی نباشند، یک پیام خطا چاپ می شود. اگر مقدار ورودی دوم غیر عددی باشد، در غیر این صورت، مقادیر ورودی چاپ می شوند.
#نام کتاب را بخوانید
خواندن -پ “نام کتاب را وارد کنید:” کتاب
#نام کتاب را بخوانید
خواندن -پ “قیمت کتاب را وارد کنید:” قیمت
#بررسی کنید که آیا ورودی غیر صفر است یا خیر
اگر تست -n “$book“ && تست -n “قیمت دلار“
سپس
#بررسی کنید که آیا مقدار ورودی عدد است یا خیر
اگر ! [[ $price =~ ^[0–9]+$ ]]; سپس
#پیام خطا را برای داده های غیر عددی چاپ کنید
اکو “ارزش قیمت باید یک عدد باشد.”
دیگر
#مقادیر ورودی را چاپ کنید
اکو “نام کتاب است $book“
اکو “قیمت کتاب است قیمت دلار“
فی
دیگر
#پیام خطا را چاپ کنید
اکو “نام یا قیمت کتاب نمی تواند خالی باشد.”
فی
خروجی:
اگر اسکریپت با دو مقدار ورودی خالی اجرا شود، خروجی زیر ظاهر می شود:
اگر اسکریپت با یک مقدار ورودی خالی اجرا شود، خروجی زیر ظاهر می شود:
اگر اسکریپت با دو مقدار ورودی معتبر غیر خالی اجرا شود، خروجی زیر ظاهر می شود:
اگر اسکریپت با دو مقدار غیر خالی و یک مقدار قیمت نامعتبر اجرا شود، خروجی زیر ظاهر می شود:
نتیجه
استفاده از هر دو عبارت «if –z» و «if –n» در این آموزش با استفاده از مثالهای متعدد توضیح داده شده است تا به کاربران Bash کمک کند تا این عبارات را به درستی در اسکریپت خود اعمال کنند.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 09:33:02