از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش دریافت آرگومان با پرچم ها در Bash
سرفصلهای مطلب
گرفتن استدلال با پرچم در Bash
برای دریافت آرگومان های با پرچم در Bash، می توانید از دستور “getopts” استفاده کنید. دستور “getopts” یک تابع داخلی در Bash است که می تواند برای تجزیه استفاده شود command-line گزینه ها و استدلال ها طول می کشد سه آرگومان: رشته گزینه، متغیر برای ذخیره گزینه فعلی، و نام متغیر برای ذخیره آرگومان های باقی مانده. در اینجا یک مثال است:
در حالی که می گیرد “:x:y:” انتخاب کردن انجام دادن
مورد $opt که در
ایکس)
arg1=“$OPTARG“
;;
y)
arg2=“$OPTARG“
;;
\؟)
اکو “بی اعتبار: –$OPTARG“ >&2
;;
:)
اکو “گزینه –$OPTARG نیاز به استدلال دارد.» >&2
;;
اساک
انجام شده
تغییر مکان $((انتخاب –1))
اکو “استدلال 1: $arg1“
اکو “استدلال 2: arg2 دلار“
در اینجا از دستور getopts برای تجزیه استفاده می شود command-line گزینه های “-x” و “-y”. کاراکتر “:” بعد از هر گزینه نشان می دهد که گزینه به آرگومان نیاز دارد و متغیر “opt” گزینه فعلی را ذخیره می کند و متغیرهای “arg1” و “arg2” آرگومان های مربوطه را ذخیره می کنند.
دستور “case” برای مدیریت هر گزینه استفاده می شود، بنابراین اگر گزینه “x” باشد، آرگومان در “arg1” ذخیره می شود. اگر گزینه “y” باشد، آرگومان در “arg2” ذخیره می شود. هنگامی که یک گزینه نامعتبر داده می شود، و همچنین زمانی که هیچ آرگومانی داده نمی شود، حتی اگر گزینه ای یک گزینه را فراخوانی کند، یک پیام خطا نشان داده می شود.
OPTARG برای ذخیره مقدار آرگومان که با گزینه های -x یا -y ارسال می شود استفاده می شود، در حالی که OPTIND-1 برای جابجایی پارامترهای موقعیتی برای حذف گزینه ها و آرگومان های آنها استفاده می شود و تنها آرگومان های غیر گزینه ای باقی می ماند.
پس از تجزیه گزینه ها، از دستور “shift” برای حذف گزینه ها از لیست آرگومان استفاده می شود. این تضمین می کند که آرگومان های باقی مانده در متغیر صحیح ذخیره می شوند. برای استفاده از اسکریپت با پرچم، می توانید اسکریپت را با گزینه ها و آرگومان های پرچم اجرا کنید، مانند این:
نتیجه
استفاده از پرچمها برای ارسال آرگومانهای اختیاری به اسکریپتهای Bash میتواند اسکریپتها را انعطافپذیرتر و قدرتمندتر کند و با دستور «getopts» به راحتی میتوانید آرگومانها را تجزیه کنید و command-line گزینه ها. با دنبال کردن مثال در این مقاله، میتوانید پرچمها را در اسکریپتهای Bash خود پیادهسازی کنید و به راحتی آنها را مدیریت کنید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 00:22:04