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

سرور مجازی NVMe

ورودی کاربر اسکریپت Bash

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


گرفتن ورودی از کاربر یک کار رایج برای هر زبان برنامه نویسی است. شما می توانید از یک کاربر ورودی دریافت کنید bash اسکریپت به طرق مختلف از دستور خواندن در bash اسکریپت برای گرفتن داده از کاربر. داده های تک یا چندگانه را می توان وارد کرد bash اسکریپت با اعمال گزینه های مختلف دستور read. برخی از کاربردهای رایج دستور خواندن در این آموزش نشان داده شده است.

گزینه Read Command:

گزینه هدف
برای ارائه یک پیام کمکی برای کاربر قبل از اعلان ورودی استفاده می شود.
-s برای گرفتن ورودی نامرئی از کاربر استفاده می شود. این گزینه برای گرفتن رمز عبور یا داده های مخفی استفاده می شود. به آن حالت خاموش می گویند.
-t از آن برای تنظیم زمان در ثانیه برای انتظار گرفتن ورودی از کاربر استفاده می شود.
-n برای تعیین محدودیت کاراکترهای ورودی استفاده می شود.

مثال-1: استفاده از دستور خواندن بدون متغیر

دستور read را می توان بدون هیچ متغیری استفاده کرد. را $REPLY متغیر برای خواندن ورودی گرفته شده از کاربر توسط دستور read بدون متغیر استفاده می شود. ایجاد یک bash فایلی را با اسکریپت زیر انجام دهید تا بدانید چگونه از دستور read بدون هیچ متغیری استفاده کنید.

#!/صندوقچه/bash

اکو “زبان برنامه نویسی مورد علاقه شما چیست؟”
# ورودی بدون تعریف متغیر
خواندن
# مقدار ورودی را چاپ کنید
اکو “پاسخ شما این است $REPLY

خروجی:

پس از اجرای اسکریپت فوق خروجی زیر ظاهر می شود.

ورودی کاربر اسکریپت Bash

مثال-2: استفاده از دستور خواندن ساده

ایجاد یک bash فایلی را با اسکریپت زیر انجام دهید تا بدانید که چگونه از دستور read با یک متغیر استفاده کنید. پس از اجرای اسکریپت، برنامه منتظر ورودی کاربر می ماند. هنگامی که کاربر داده ها را تایپ می کند و enter را فشار می دهد، داده ها در آن ذخیره می شوند جواب متغیر. ارزش از پاسخ متغیر بعدا چاپ خواهد شد.

#!/صندوقچه/bash
اکو -n “غذای مورد علاقه شما چیست: “
# مقدار ورودی را به یک متغیر اختصاص دهید
خواندن پاسخ
# مقدار متغیر را چاپ کنید
اکو “اوه! دوست داری $پاسخ!”

خروجی:

پیشنهاد می‌کنیم بخوانید:  مدیریت خطای Bash

پس از اجرای اسکریپت فوق خروجی زیر ظاهر می شود.

ورودی کاربر اسکریپت Bashورودی کاربر اسکریپت Bash

مثال-3: استفاده از دستور خواندن با گزینه ها

ایجاد یک bash فایل را با اسکریپت زیر بدانید تا بدانید که چگونه از هر دو گزینه –p و –s با هم در فایل استفاده کنید bash اسکریپت در این مثال، نام کاربری و رمز عبور از کاربر گرفته می شود و با مقدار خاص مقایسه می شود تا بررسی شود که نام کاربری و رمز عبور معتبر هستند یا خیر.

#!/صندوقچه/bash
# اطلاعات ورود خود را تایپ کنید
خواندن ‘نام کاربری: ‘ کاربر
خواندن -sp ‘کلمه عبور: ‘ عبور

# بررسی کنید نام کاربری و رمز عبور معتبر هستند یا خیر
اگر (( $user == “مدیر” && $pass == “12345” ))
سپس

اکو -e \nورود موفقیت آمیز”
دیگر

اکو -e \nورود ناموفق”
فی

خروجی:

پس از اجرای اسکریپت فوق خروجی زیر ظاهر می شود.

ورودی کاربر اسکریپت Bashورودی کاربر اسکریپت Bash

مثال-4: استفاده از دستور read برای گرفتن چندین ورودی

چندین ورودی را می توان با استفاده از دستور خواندن با نام متغیرهای متعدد در یک زمان دریافت کرد. در مثال زیر با استفاده از دستور read چهار ورودی در چهار متغیر گرفته می شود.

#!/صندوقچه/bash

# گرفتن ورودی های متعدد
اکو “چهار نام از زبان های برنامه نویسی مورد علاقه خود را تایپ کنید”
خواندن lan1 lan2 lan3 lan4
اکو $lan1 اولین انتخاب شماست”
اکو $lan2 انتخاب دوم شماست”
اکو $lan3 انتخاب سوم شماست”
اکو lan4 دلار انتخاب چهارم شماست”

خروجی:

پس از اجرای اسکریپت فوق خروجی زیر ظاهر می شود.

ورودی کاربر اسکریپت Bashورودی کاربر اسکریپت Bash

مثال-5: استفاده از دستور خواندن با محدودیت زمانی

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

#!/صندوقچه/bash
# ورودی با محدودیت زمانی
خواندن -t 5 “رنگ مورد علاقه خود را تایپ کنید:” رنگ
# مقدار ورودی را چاپ کنید
اکو $ رنگ

خروجی:

پس از اجرای اسکریپت فوق خروجی زیر ظاهر می شود. مقدار ورودی در اجرای اول داده شده است و در اجرای دوم در عرض 5 ثانیه هیچ مقدار ورودی داده نشده است.

پیشنهاد می‌کنیم بخوانید:  چگونه رفع کنیم”bash: /usr/sbin/ifconfig: چنین فایل یا دایرکتوری وجود ندارد. روی لینوکس

ورودی کاربر اسکریپت Bashورودی کاربر اسکریپت Bash

مثال-6: استفاده از دستور read با گزینه -n

ایجاد یک bash فایل با اسکریپت زیر برای گرفتن ورودی با طول خاص. طبق این اسکریپت، کاربر می تواند حداکثر 15 کاراکتر را به عنوان ورودی وارد کند.

#!/صندوقچه/bash

اکو “شماره تلفن خود را وارد کنید (حداکثر 15 کاراکتر):”
# ورودی حداکثر 15 کاراکتر را دریافت کنید
خواندن -n 15 تلفن
# یک خط جدید اضافه کنید
اکو
# مقدار ورودی را چاپ کنید
اکو “شماره تلفن شما است تلفن $

خروجی:

پس از اجرای اسکریپت فوق خروجی زیر ظاهر می شود.

ورودی کاربر اسکریپت Bashورودی کاربر اسکریپت Bash

مثال-7: بررسی مسیر طی شده فایل یا دایرکتوری است

ایجاد یک bash فایل با اسکریپت زیر برای گرفتن یک مقدار مسیر از terminal و بررسی کنید مسیر ورودی یک دایرکتوری یا فایل باشد.

#!/صندوقچه/bash

# مقدار مسیر را از ورودی بگیرید
خواندن “مسیر معتبر را وارد کنید:” مسیر

# بررسی کنید مقادیر ورودی دایرکتوری است یا خیر
اگر [ -d $path ]; سپس

اکو مسیر $ یک دایرکتوری است.”
# بررسی کنید مقادیر ورودی فایل است یا نه
elif [ -f $path ]; سپس

اکو مسیر $ یک فایل است.”
دیگر

اکو “مسیر نامعتبر.”
فی

خروجی:

پس از اجرای اسکریپت فوق خروجی زیر ظاهر می شود.

ورودی کاربر اسکریپت Bashورودی کاربر اسکریپت Bash

مثال-8: آرایه را با استفاده از دستور خواندن مقداردهی اولیه کنید

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

#!/صندوقچه/bash

اکو “پنج مقدار عددی برای آرایه با فاصله وارد کنید:”
# مقادیر آرایه را بخوانید
خواندن MyArr

# تمام مقادیر آرایه را چاپ کنید
اکو ${MyArr[@]}

# اولین مقدار آرایه را چاپ کنید
اکو ${MyArr[0]}

# دو مقدار اول آرایه را چاپ کنید
اکو ${MyArr[@]:0:2}

# آخرین مقدار آرایه را چاپ کنید
اکو ${MyArr[4]}

خروجی:

پس از اجرای اسکریپت فوق خروجی زیر ظاهر می شود.

ورودی کاربر اسکریپت Bashورودی کاربر اسکریپت Bash

نتیجه:

کاربردهای مختلف دستور read در این آموزش با استفاده از چندین مثال برای کمک به نشان داده شده است bash کاربران کاربردهای این دستور را به درستی بدانند و آن را در اسکریپت خود اعمال کنند.

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

زمان انتشار: 1402-12-30 10:11:03

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

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

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