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

سرور مجازی NVMe

یک آرگومان نامگذاری شده را در یک اسکریپت Bash ارسال کنید

0 4

سرفصلهای مطلب

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


این command-line مقادیر آرگومان را می توان به دو روش در اسکریپت Bash ارسال کرد. یک راه استفاده از آرگومان های موقعیتی مانند $1، $2، $3 و غیره است. راه دیگر استفاده از آرگومان های نامگذاری شده است. استفاده از آرگومان موقعیتی برای دسترسی به مقادیر آرگومان چندان مفید نیست زیرا به وضوح مشخص نیست که کدام آرگومان موقعیتی حاوی چه نوع داده ای است. اما گزینه معنی دار را می توان با آرگومان نامگذاری شده استفاده کرد که به درک اینکه کدام آرگومان حاوی کدام نوع داده است کمک می کند. استفاده از آرگومان های نامگذاری شده در Bash در این آموزش نشان داده شده است.

کاربرد Getopts و Getopt

هر دو getopt و getopt در Bash برای خواندن مقادیر آرگومان نامگذاری شده استفاده می شوند. اما بین این ابزارها تفاوت وجود دارد. Getopts برای خواندن گزینه های کوتاه مانند -h، -d و غیره استفاده می شود. اما نمی تواند گزینه های طولانی مانند –version، –user و غیره را بخواند. Getopt برای خواندن مقدار گزینه long استفاده می شود. اگر می خواهید جزئیات بیشتری در مورد getopts بدانید، می توانید اینجا را بررسی کنید.

مثال 1: آرگومان های نامگذاری شده را با استفاده از Getopts بخوانید

یک فایل Bash با اسکریپت زیر ایجاد کنید که دو آرگومان نامگذاری شده را با استفاده از getopts که از گزینه های کوتاه پشتیبانی می کنند بخواند. از گزینه های -i و -r برای ارسال مقادیر آرگومان نامگذاری شده در طول اجرای اسکریپت استفاده می شود. سپس، مقدار آرگومان که توسط گزینه -i خوانده می‌شود، با یک مقدار خاص برای چاپ خروجی بر اساس بررسی می‌شود روی مقدار تطبیق

#بر اساس مقادیر آرگومان را بخوانید روی گزینه ها
در حالی که می گیرد “i:r:” var
انجام دادن

مورد $var که در

من) شناسه=${OPTARG};;

r) معدل=${OPTARG};;

اساک
انجام شده

#چاپ پیام بر اساس روی مقدار شناسه منطبق که در آرگومان ارسال شده است
اگر [[ $ID == “56” ]]; سپس

اکو «میرصابر به دست آورد GPA $
elif [[ $ID == “34” ]]; سپس

پیشنهاد می‌کنیم بخوانید:  نمونه های Bash Echo

اکو «نیروب احسن به دست آورد GPA $
دیگر

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

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

یک آرگومان نامگذاری شده را در یک اسکریپت Bash ارسال کنید

مثال 2: آرگومان های نامگذاری شده را با استفاده از Getopt بخوانید

یک فایل Bash با اسکریپت زیر ایجاد کنید که دو آرگومان نامگذاری شده را با استفاده از getopt بخواند که از گزینه های طولانی پشتیبانی می کند. گزینه های –email و –pass برای ارسال مقادیر آرگومان نامگذاری شده در طول اجرای اسکریپت استفاده می شوند. مقادیر آرگومان هایی که توسط آرگومان های نامگذاری شده خوانده می شوند در دو متغیر به نام های $Email و $Password ذخیره می شوند. در مرحله بعد، مقادیر این متغیرها با مقادیر خاص مقایسه شده و بر اساس خروجی چاپ می شود روی خروجی مقایسه

#!/bin/bash

#گزینه های دستور getopt را تنظیم کنید
قالب=$(گرفتن -n “0$” “email:,pass:” “$@”)
اگر [ $# -lt 3 ]; سپس

اکو “تعداد اشتباهی از آرگومان ها ارسال شده است.”

خروج
فی
ارزیابی تنظیم قالب $

#مقادیر آرگومان را بخوانید
در حالی که [ $# -gt 0 ]
انجام دادن

مورد “$1” که در

–پست الکترونیک) پست الکترونیک=“2 دلار”; تغییر مکان;;

–عبور) کلمه عبور=“2 دلار”; تغییر مکان;;

) تغییر مکان;;

اساک

تغییر مکان;
انجام شده

#مقادیر آرگومان را با مقدار خاص مقایسه کنید
اگر [[ $Email == “admin@example.com” && $Password == “secretpass” ]]; سپس

اکو “کاربر معتبر”
دیگر

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

اسکریپت سه بار در خروجی زیر اجرا می شود. اسکریپت بدون هیچ آرگومانی در اولین اجرا اجرا می شود. بنابراین، پیغام خطای “تعداد اشتباهی از آرگومان ها ارسال شده اند” نمایش داده می شود. اسکریپت با دو مقدار آرگومان در اجرای دوم اجرا می شود اما مقدار آرگومان دوم با مقدار رمز عبور مطابقت ندارد. بنابراین، پیام “کاربر نامعتبر” نمایش داده می شود. این اسکریپت با دو آرگومان معتبر با نام در اجرای سوم اجرا می‌شود و هر دو مقدار آرگومان با مقادیری که در شرط «if» ارائه شده‌اند مطابقت دارند. بنابراین، پیام “کاربر معتبر” نمایش داده می شود.

پیشنهاد می‌کنیم بخوانید:  روش بررسی وضعیت خروج با استفاده از عبارت «if» در Bash

یک آرگومان نامگذاری شده را در یک اسکریپت Bash ارسال کنیدیک آرگومان نامگذاری شده را در یک اسکریپت Bash ارسال کنید

مثال 3: استدلال نامگذاری شده را بدون Getopts و Getopt بخوانید

یک فایل Bash با اسکریپت زیر ایجاد کنید که سه آرگومان نامگذاری شده را با استفاده از حلقه “while” بخواند. با توجه به اسکریپت، می توان از هر دو گزینه کوتاه و بلند برای ارسال آرگومان های نامگذاری شده در اسکریپت استفاده کرد. -u یا –user، -p یا –pass، و -h یا –host از گزینه ها برای ارسال سه مقدار آرگومان نامگذاری شده در طول اجرای اسکریپت استفاده می شود. سپس مقادیر آرگومان با استفاده از حلقه “while” و فرمان “shift” در سه متغیر خوانده و ذخیره می شوند.

#!/bin/bash
#مقادیر آرگومان را بخوانید
در حالی که [[ “$#” -gt 0 ]]

انجام دادن

مورد 1 دلار که در

-u|–کاربر) کاربر=“2 دلار”; تغییر مکان;;

|–عبور) کلمه عبور=“2 دلار”; تغییر مکان;;

-h|–host) میزبان=“2 دلار”; تغییر مکان;;

اساک

تغییر مکان
انجام شده
#مقادیر آرگومان را چاپ کنید
printf “نام کاربری: $User \nکلمه عبور: $Password \nنام میزبان: $Host\n

اسکریپت با سه آرگومان معتبر با نام در خروجی زیر اجرا می شود. بنابراین، مقادیر سه آرگومان چاپ می شود:

یک آرگومان نامگذاری شده را در یک اسکریپت Bash ارسال کنیدیک آرگومان نامگذاری شده را در یک اسکریپت Bash ارسال کنید

نتیجه

روش های مختلف استفاده از آرگومان های نامگذاری شده در اسکریپت Bash در این آموزش نشان داده شده است تا به کاربران Bash کمک کند تا بدانند چگونه از آرگومان های نامگذاری شده استفاده کنند.

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

زمان انتشار: 1402-12-28 19:26:05

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

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

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