از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
درخواست ورودی در Bash
سرفصلهای مطلب
دستور read برای گرفتن ورودی از کاربر در اسکریپت Bash استفاده می شود. اگر بعد از این دستور از متغیری استفاده نشود، از متغیر $REPLY برای خواندن مقدار ورودی استفاده می شود. دستور “خواندن” گزینه های زیادی برای گرفتن ورودی دارد که در آموزش دیگری توضیح داده شده است. استفاده از گزینه prompt یکی از آنهاست. این گزینه برای گرفتن ورودی از کاربر با استفاده از یک پیام سریع استفاده می شود که به کاربر کمک می کند تا بفهمد چه نوع داده ای باید ارائه شود. روش های استفاده از گزینه prompt برای گرفتن ورودی از کاربر در Bash در این آموزش توضیح داده شده است.
نمونه های مختلف ورودی سریع
کاربردهای مختلف دستور “خواندن” با پیام اعلان در این بخش از آموزش نشان داده شده است.
مثال 1: ورودی رشته را با استفاده از Prompt بگیرید
یک فایل Bash با اسکریپت زیر ایجاد کنید که اولین ورودی را بدون پیام اعلان به متغیر پیشفرض که $REPLY است، ورودی دوم بدون پیام اعلان را در متغیر $lang و سومین ورودی را با پیام prompt به $ وارد کنید. متغیر پاسخ بعد، پیام ها بر اساس چاپ می شوند روی مقادیر ورودی اگر مقدار متغیر $REPLY “y”، “Y” یا “Yes” باشد، پیام “You like programming” چاپ می شود. اگر مقدار متغیر $lang خالی نباشد، مقدار $lang چاپ می شود. اگر مقدار متغیر $answer “y”، “Y” یا “Yes” باشد، پیام “زبان مورد علاقه شما است” با مقدار پاسخ $ چاپ می شود.
اکو “آیا برنامه نویسی را دوست دارید؟ (y/n)”
#خواندن ورودی در متغیر پیشفرض
خواندن
اکو “زبان برنامه نویسی مورد علاقه شما چیست؟”
#خواندن ورودی در متغیر اختصاص داده شده
خواندن زبان
# ورودی را با استفاده از یک پیام سریع بخوانید
خواندن -پ “آیا برنامه نویسی Bash را دوست دارید؟ (بله/خیر)” پاسخ
اکو
اکو “*** بر اساس خروجی روی مقادیر ورودی:***”
اکو
بر اساس #خروجی روی اولین ورودی
اگر [[ $REPLY == “y” || $REPLY == “Y” || $REPLY == “Yes” ]]; سپس
اکو “تو برنامه نویسی را دوست داری.”
فی
بر اساس #خروجی روی ورودی دوم
اگر [ $lang != “” ]; سپس
اکو “زبان مورد علاقه شما این است $ lang“
فی
بر اساس #خروجی روی ورودی سوم
اگر [[ $answer == “y” || $answer == “Y” || $answer == “Yes” ]]; سپس
اکو شما برنامه نویسی bash را دوست دارید.
فی
خروجی زیر پس از اجرای اسکریپت با اولین مقدار ورودی “y”، دومین مقدار ورودی “PHP” و سومین مقدار ورودی “y” ظاهر می شود:
مثال 2: ورودی عددی را با استفاده از Prompt بگیرید
یک فایل Bash با اسکریپت زیر ایجاد کنید که یک مقدار عددی را از کاربر با استفاده از یک پیام اعلان در متغیر $number بگیرد. در مرحله بعد، مقدار با اعداد خاص مقایسه می شود تا مشخص شود که آیا عدد با هر بلیط مطابقت دارد یا خیر، و یک پیام را بر اساس چاپ می کند. روی مقدار بازگشتی عبارت “if”.
#یک ورودی عددی بگیرید
خواندن -پ “شماره بلیط خود را وارد کنید [1000-9999]:” عدد
#بر اساس خروجی چاپ روی ورودی
اگر [[ $number -eq “7823” ]]; سپس
اکو شما جایزه اول را بردید.
elif [[ $number -eq “3489” ]]; سپس
اکو شما جایزه دوم را بردید.
elif [[ $number -eq “5634” ]]; سپس
اکو تو برنده جایزه سوم شدی.
دیگر
اکو “دوباره امتحان کن.”
فی
اسکریپت دو بار اجرا می شود. زمانی که عدد 6734 به عنوان مقدار ورودی در نظر گرفته می شود، پیام “دوباره امتحان کنید” چاپ می شود. پیام “شما جایزه دوم را بردید” زمانی چاپ می شود که عدد 3489 به عنوان مقدار ورودی در نظر گرفته شود زیرا با شرط دوم “اگر” مطابقت دارد.
مثال 3: چندین مقدار ورودی را با استفاده از Prompt بگیرید
در دو مثال قبلی، ورودی واحد با استفاده از هر دستور “خواندن” گرفته می شود. اما می توانید با استفاده از دستور “خواندن” چندین ورودی در Bash بگیرید. در این حالت، هنگام گرفتن چندین ورودی با استفاده از دستور “خواندن” باید چندین متغیر را با فاصله ارسال کنید. یک فایل Bash با اسکریپت زیر ایجاد کنید که سه ورودی را در سه متغیر – $id، $batch و $cgpa میگیرد. مقادیر این متغیرها بعدا چاپ می شوند.
اکو “=====اطلاعات دانش آموز را با فاصله وارد کنید=====”
# با استفاده از یک پیام اعلان، چندین مقدار ورودی را بگیرید
خواندن -پ “ID, Batch, CGPA:” شناسه دسته ای cgpa
اکو
اکو “*** بر اساس خروجی روی مقادیر ورودی:***”
#مقادیر ورودی را چاپ کنید
اکو “شناسه: $id“
اکو “دسته: دسته $“
اکو “CGPA: cgpa $“
خروجی زیر پس از اجرای اسکریپت با مقادیر id=’01156788’، batch=42 و cgpa=3.97 ظاهر می شود:
نتیجه
استفاده از فرمان با دستور “خواندن” در اسکریپت Bash در این آموزش با استفاده از چندین مثال نشان داده شده است. مزایای استفاده از یک پیام سریع با دستور “خواندن” پس از خواندن این آموزش پاک می شود.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-28 18:24:03