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

سرور مجازی NVMe

ایجاد یک عدد تصادفی در bash

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


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

استفاده از ژنراتور تصادفی:

عدد تصادفی یا محدوده ای از اعداد تصادفی را می توان با استفاده از متغیر $RANDOM تولید کرد. به طور پیش فرض یک عدد تصادفی بین 0 تا 32767 تولید می کند. اما می توانید با تقسیم مقدار $RANDOM با یک مقدار خاص، محدوده اعداد را برای تولید اعداد تصادفی تنظیم کنید. استفاده های مختلف از متغیر $RANDOM برای تولید اعداد تصادفی در قسمت بعدی آموزش نشان داده شده است.

تولید اعداد تصادفی با استفاده از متغیر $RANDOM:

راه های تولید اعداد تصادفی در terminal و اجرای یک فایل اسکریپت در اینجا نشان داده شده است.

الف. اعداد تصادفی را از terminal

دستور زیر را برای ایجاد یک عدد تصادفی در محدوده 0 تا 32767 اجرا کنید.

$ echo تصادفی $

شما می توانید با تقسیم متغیر $RANDOM با یک مقدار خاص و بدست آوردن مقدار باقیمانده، یک عدد تصادفی از یک محدوده خاص ایجاد کنید. دستور زیر را اجرا کنید تا یک عدد تصادفی در محدوده 1 تا 50 ایجاد شود. در اینجا از دو براکت اول با $ استفاده شده است.

$ echo $(( تصادفی $ % 50 + 1 ))

دستور زیر را اجرا کنید تا یک عدد تصادفی در محدوده 10 تا 40 ایجاد شود. در اینجا از براکت سوم با $ استفاده شده است.

$ echo $[ $RANDOM % 40 + 10 ]

ایجاد یک عدد تصادفی در bash

ب. اعداد تصادفی را با استفاده از اسکریپت تولید کنید

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

#!/صندوقچه/bash
# یک محدوده بر اساس تصادفی تعریف شده توسط کاربر ایجاد کنید

پیشنهاد می‌کنیم بخوانید:  نقل قول های فرار Bash

#مقدار پایین و بالایی را از کاربر بگیرید
echo “حداقل مقدار را وارد کنید:”
خواندن کمترین
echo “حداکثر مقدار را وارد کنید:”
خواندن بیشترین

#بررسی کنید مقادیر گرفته شده معتبر هستند
اگر [[ $maximum < $minimum ]]; سپس

echo “حداکثر مقدار نمی تواند کمتر از مقدار حداقل باشد”

خروج 1
فی

#تفاوت اعداد را دریابید
تفاوت=$((حداکثر دلارحداقل دلار))

#مقدار تفاوت را بررسی کنید
اگر [[ $diff == 1 ]]; سپس

echo “محدوده اعداد باید بیشتر از 1 باشد”

خروج 1
فی

#عدد تصادفی را تولید کنید
عدد تصادفی=$((حداقل دلار + تصادفی $ % حداکثر دلار))
شماره تولید شده را #چاپ کنید
echo “عدد تصادفی تولید شده عبارت است از: $randomNumber

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

ایجاد یک عدد تصادفی در bashایجاد یک عدد تصادفی در bash

تولید اعداد تصادفی با استفاده از دستور shuf:

استفاده از دستور ‘shuf’ راه دیگری برای تولید اعداد تصادفی یک محدوده خاص است. راه های تولید یک عدد تصادفی از terminal و استفاده از یک اسکریپت در این آموزش نشان داده شده است.

الف. اعداد تصادفی را از terminal

دستور زیر را برای ایجاد یک عدد تصادفی بین 0 تا 50 با استفاده از دستور ‘shuf’ اجرا کنید.

$ زدن -من 050 -n1

با توجه به خروجی زیر دستور فوق سه بار اجرا شده و سه عدد تصادفی تولید شده است.

ایجاد یک عدد تصادفی در bashایجاد یک عدد تصادفی در bash

ب. اعداد تصادفی را با استفاده از اسکریپت تولید کنید

ایجاد یک bash فایل با اسکریپت زیر برای ایجاد لیستی از اعداد تصادفی بر اساس روی مقدار ورودی حلقه «for» برای اجرای دستور «shuf» چندین بار برای تولید لیستی از اعداد تصادفی بین 1 تا 100 و print تعداد.

#!/صندوقچه/bash
# با استفاده از دستور ‘shuf’ یک تصادفی ایجاد کنید
echo “چند عدد تصادفی می خواهید ایجاد کنید؟:”
خواندن عدد

پیشنهاد می‌کنیم بخوانید:  روش رفع خطای ترمینال Bash: «Bash: خطای نحوی نزدیک به توکن غیرمنتظره «Newline»

#اعداد تصادفی تولید شده را چاپ کنید
echo “اعداد تصادفی تولید شده عبارتند از:”
برای n که در `دنباله $شماره`
انجام دادن
عدد تصادفی=$(زدن -من 1100 -n1)
echo $randomNumber
انجام شده

خروجی زیر نشان می دهد که 5 به عنوان مقدار ورودی در نظر گرفته شده است و 5 عدد تصادفی تولید شده است که نه بیشتر از 100 و نه کمتر از 1 هستند.

ایجاد یک عدد تصادفی در bashایجاد یک عدد تصادفی در bash

تولید اعداد تصادفی با استفاده از /dev/urandom:

/dev/urandom را می توان با دستورات مختلف برای تولید انواع مختلف مقادیر تصادفی استفاده کرد. نمی توان از آن برای تعیین مقادیر محدوده مانند دستور ‘shuf’ و متغیر $RANDOM استفاده کرد. اما تعداد ارقام عدد تصادفی را می توان در دستور با /dev/urandom تعریف کرد. استفاده از دستور ‘od’ با /dev/urandom در قسمت بعدی این آموزش نشان داده شده است. از این دستور می توان برای تعیین تعداد بایت ها استفاده کرد که در آن هر بایت را می توان با یک عدد اعشاری بین 0 تا 255 تعریف کرد.

برای ایجاد یک عدد تصادفی بین 0 تا 255 دستور زیر را اجرا کنید.

$ od n -t د 1 /توسعه دهنده/تصادفی

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

ایجاد یک عدد تصادفی در bashایجاد یک عدد تصادفی در bash

نتیجه:

سه روش مختلف برای تولید اعداد تصادفی در این آموزش با استفاده از مثال های مختلف توضیح داده شده است. کدگذار می تواند محدوده خاصی از اعداد تصادفی را با استفاده از متغیر $RANDOM یا دستور “shuf” در bash. کدگذار می تواند از /dev/urandom با هر دستور دیگری برای تولید تعداد تصادفی بایت ها یا طول های خاص استفاده کند. تولید اعداد تصادفی یک نیاز بسیار رایج برای برنامه نویسی است و امیدوارم خوانندگان بتوانند بر اساس اعداد تصادفی تولید کنند. روی الزامات آنها پس از خواندن این آموزش.

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

زمان انتشار: 1402-12-30 17:08:04

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

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

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