'\" t .\" Title: getopt .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-09-02 .\" Manual: User Commands .\" Source: util-linux 2.42.3 .\" Language: Persian .\" .TH "GETOPT" "1" "2026-09-02" "util\-linux 2.42.3" "دستورات کاربر" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "نام (NAME)" getopt \- تجزیه و پردازش گزینه‌های خط فرمان در اسکریپت‌ها .SH "خلاصه دستور (SYNOPSIS)" .sp \fBgetopt\fP \fIoptstring\fP \fIparameters\fP .sp \fBgetopt\fP [options] [\fB\-\-\fP] \fIoptstring\fP \fIparameters\fP .sp \fBgetopt\fP [options] \fB\-o\fP|\fB\-\-options\fP \fIoptstring\fP [options] [\fB\-\-\fP] \fIparameters\fP .SH "توضیحات (DESCRIPTION)" .sp دستور \fBgetopt\fP برای تفکیک (\fIتجزیه\fP) گزینه‌ها در خطوط فرمان به‌منظور تجزیه آسان توسط رویه‌های پوسته و بررسی معتبر بودن گزینه‌ها استفاده می‌شود. این دستور برای انجام این کار از روتین‌های \fBgetopt\fP(3) در گنو (GNU) استفاده می‌کند. .sp پارامترهایی که \fBgetopt\fP با آن‌ها فراخوانی می‌شود را می‌توان به دو بخش تقسیم کرد: گزینه‌هایی که نحوه تجزیه توسط \fBgetopt\fP را تغییر می‌دهند (\fIoptions\fP و \fIoptstring\fP در بخش \fBخلاصه دستور\fP)، و پارامترهایی که قرار است تجزیه شوند (\fIparameters\fP در بخش \fBخلاصه دستور\fP). بخش دوم از اولین پارامتر غیرگزینه‌ای که آرگومان یک گزینه نیست، یا پس از اولین رخداد \*(Aq\fB\-\-\fP\*(Aq شروع می‌شود. اگر هیچ گزینه \*(Aq\fB\-o\fP\*(Aq یا \*(Aq\fB\-\-options\fP\*(Aq در بخش اول یافت نشود، اولین پارامتر بخش دوم به‌عنوان رشته گزینه‌های کوتاه استفاده می‌شود. .sp اگر متغیر محیطی \fBGETOPT_COMPATIBLE\fP تنظیم شده باشد، یا اگر اولین \fIparameter\fP یک گزینه نباشد (با \*(Aq\fB\-\fP\*(Aq شروع نشود، قالب اول در بخش \fBخلاصه دستور\fP)، \fBgetopt\fP خروجی سازگار با سایر نسخه‌های \fBgetopt\fP(1) تولید خواهد کرد. با این حال همچنان جابه‌جایی پارامترها را انجام داده و آرگومان‌های اختیاری را تشخیص می‌دهد (برای اطلاعات بیشتر به بخش \fBسازگاری\fP مراجعه کنید). .sp پیاده‌سازی‌های سنتی \fBgetopt\fP(1) قادر به مدیریت فاصله‌ها (whitespace) و سایر نویسه‌های خاص (مخصوص پوسته) در آرگومان‌ها و پارامترهای غیرگزینه‌ای نیستند. برای حل این مشکل، این پیاده‌سازی می‌تواند خروجی نقل‌قول‌شده (quoted) تولید کند که باید مجدداً توسط پوسته تفسیر شود (معمولاً با استفاده از دستور \fBeval\fP). این کار باعث حفظ آن نویسه‌ها می‌شود، اما باید \fBgetopt\fP را به روشی فراخوانی کنید که دیگر با سایر نسخه‌ها سازگار نیست (قالب دوم یا سوم در بخش \fBخلاصه دستور\fP). برای تعیین اینکه آیا این نسخه بهبودیافته از \fBgetopt\fP(1) نصب شده است یا خیر، می‌توان از یک گزینه آزمایشی ویژه (\fB\-T\fP) استفاده کرد. .SH "گزینه‌ها (OPTIONS)" .sp \fB\-a\fP, \fB\-\-alternative\fP .RS 4 اجازه می‌دهد گزینه‌های طولانی با یک \*(Aq\fB\-\fP\*(Aq تکی شروع شوند. .RE .sp \fB\-l\fP, \fB\-\-longoptions\fP \fIlongopts\fP .RS 4 گزینه‌های طولانی (چندنویسه‌ای) که باید شناسایی شوند. می‌توان بیش از یک نام گزینه را به‌طور هم‌زمان با جدا کردن نام‌ها توسط ویرگول یا نویسه‌های فاصله (فاصله، تب، یا خط جدید) مشخص کرد. این گزینه می‌تواند بیش از یک بار داده شود و مقادیر \fIlongopts\fP انباشته می‌شوند. هر نام گزینه طولانی در \fIlongopts\fP می‌تواند با یک دونقطه (:) برای نشان دادن نیاز به آرگومان اجباری، و با دو دونقطه (::) برای نشان دادن داشتن آرگومان اختیاری دنبال شود. .RE .sp \fB\-n\fP, \fB\-\-name\fP \fIprogname\fP .RS 4 نامی که توسط روتین‌های \fBgetopt\fP(3) هنگام گزارش خطاها استفاده خواهد شد. توجه داشته باشید که خطاهای خود \fBgetopt\fP(1) همچنان به‌عنوان خطاهای ناشی از getopt گزارش می‌شوند. .RE .sp \fB\-o\fP, \fB\-\-options\fP \fIshortopts\fP .RS 4 گزینه‌های کوتاه (تک‌نویسه‌ای) که باید شناسایی شوند. اگر این گزینه یافت نشود، اولین پارامتر \fBgetopt\fP که با \*(Aq\fB\-\fP\*(Aq شروع نمی‌شود (و آرگومان گزینه نیست) به‌عنوان رشته گزینه‌های کوتاه استفاده می‌شود. هر نویسه گزینه کوتاه در \fIshortopts\fP می‌تواند با یک دونقطه (:) برای نشان دادن نیاز به آرگومان اجباری، و با دو دونقطه (::) برای نشان دادن داشتن آرگومان اختیاری دنبال شود. اولین نویسه shortopts می‌تواند \*(Aq\fB+\fP\*(Aq یا \*(Aq\fB\-\fP\*(Aq باشد تا بر نحوه تجزیه گزینه‌ها و تولید خروجی تأثیر بگذارد (برای جزئیات به بخش \fBحالت‌های پویش\fP مراجعه کنید). .RE .sp \fB\-q\fP, \fB\-\-quiet\fP .RS 4 غیرفعال کردن گزارش خطا توسط \fBgetopt\fP(3). .RE .sp \fB\-Q\fP, \fB\-\-quiet\-output\fP .RS 4 عدم تولید خروجی عادی. خطاها همچنان توسط \fBgetopt\fP(3) گزارش می‌شوند، مگر اینکه از \fB\-q\fP نیز استفاده کنید. .RE .sp \fB\-s\fP, \fB\-\-shell\fP \fIshell\fP .RS 4 تنظیم قواعد نقل‌قول مطابق با \fIshell\fP. اگر گزینه \fB\-s\fP داده نشود، از قواعد \fBBASH\fP استفاده می‌شود. آرگومان‌های معتبر در حال حاضر عبارتند از: \*(Aq\fBsh\fP\*(Aq، \*(Aq\fBbash\fP\*(Aq، \*(Aq\fBcsh\fP\*(Aq و \*(Aq\fBtcsh\fP\*(Aq. .RE .sp \fB\-T\fP, \fB\-\-test\fP .RS 4 بررسی اینکه آیا \fBgetopt\fP(1) شما این نسخه بهبودیافته است یا یک نسخه قدیمی. این گزینه هیچ خروجی تولید نمی‌کند و وضعیت خطا (error status) را روی 4 تنظیم می‌کند. سایر پیاده‌سازی‌های \fBgetopt\fP(1)، و این نسخه در صورتی که متغیر محیطی \fBGETOPT_COMPATIBLE\fP تنظیم شده باشد، \*(Aq\fB\-\-\fP\*(Aq و وضعیت خطای 0 را برمی‌گردانند. .RE .sp \fB\-u\fP, \fB\-\-unquoted\fP .RS 4 عدم نقل‌قول‌گذاری (کوتیشن) خروجی. توجه داشته باشید که فاصله‌ها و نویسه‌های خاص (وابسته به پوسته) می‌توانند در این حالت اختلال ایجاد کنند (همان‌طور که در سایر پیاده‌سازی‌های \fBgetopt\fP(1) رخ می‌دهد). .RE .sp \fB\-U\fP, \fB\-\-unknown\fP .RS 4 باقی گذاشتن گزینه‌های ناشناخته به همان صورت و متوقف کردن پیام‌های خطای \fBgetopt\fP(3). از آنجا که هیچ راهی برای دانستن اینکه آیا یک گزینه ناشناخته به آرگومان نیاز دارد یا خیر وجود ندارد، یک آرگومان غیرگزینه‌ای که پس از یک فاصله بعد از گزینه ناشناخته می‌آید، به‌عنوان آرگومان گزینه در نظر گرفته می‌شود؛ بنابراین آرگومان دست‌نخورده باقی می‌ماند و در کنار گزینه ناشناخته مربوطه چاپ می‌شود. برای جلوگیری از رفتارهای غیرمنتظره، گزینه‌های کوتاه باید به‌صورت جداگانه مشخص شوند. .RE .sp \fB\-h\fP, \fB\-\-help\fP .RS 4 نمایش متن راهنما و خروج. .RE .sp \fB\-V\fP, \fB\-\-version\fP .RS 4 نمایش نسخه و خروج. .RE .SH "تجزیه (PARSING)" .sp این بخش قالب بخش دوم پارامترهای \fBgetopt\fP (\fIparameters\fP در بخش \fBخلاصه دستور\fP) را مشخص می‌کند. بخش بعدی (\fBخروجی\fP) خروجی تولیدشده را شرح می‌دهد. این پارامترها معمولاً پارامترهایی بودند که یک تابع پوسته با آن‌ها فراخوانی شده بود. باید دقت شود که هر پارامتری که تابع پوسته با آن فراخوانی شده دقیقاً با یک پارامتر در فهرست پارامترهای \fBgetopt\fP مطابقت داشته باشد (به بخش \fBمثال‌ها\fP مراجعه کنید). تمام فرایند تجزیه توسط روتین‌های \fBgetopt\fP(3) در گنو انجام می‌شود. .sp پارامترها از چپ به راست تجزیه می‌شوند. هر پارامتر به‌عنوان یک گزینه کوتاه، یک گزینه طولانی، یک آرگومان برای یک گزینه، یا یک پارامتر غیرگزینه‌ای دسته‌بندی می‌شود. .sp یک گزینه کوتاه ساده عبارت است از یک \*(Aq\fB\-\fP\*(Aq به همراه یک نویسه گزینه کوتاه، به جز نویسه‌های \*(Aq:\*(Aq، \*(Aq;\*(Aq و \*(Aq?\*(Aq، زیرا این نویسه‌ها توسط \fBgetopt\fP(3) رزرو شده‌اند. اگر گزینه نیاز به آرگومان اجباری داشته باشد، می‌توان آن را مستقیماً پس از نویسه گزینه یا به‌عنوان پارامتر بعدی نوشت (یعنی با فاصله در خط فرمان جدا شود). اگر گزینه آرگومان اختیاری داشته باشد، در صورت وجود باید مستقیماً پس از نویسه گزینه نوشته شود. .sp امکان مشخص کردن چندین گزینه کوتاه پس از یک \*(Aq\fB\-\fP\*(Aq وجود دارد، به شرطی که همه آن‌ها (به‌جز احتمالاً آخرین گزینه) آرگومان اجباری یا اختیاری نداشته باشند. .sp یک گزینه طولانی معمولاً با \*(Aq\fB\-\-\fP\*(Aq و به دنبال آن نام گزینه طولانی شروع می‌شود. اگر گزینه آرگومان اجباری داشته باشد، می‌توان آن را مستقیماً پس از نام گزینه طولانی و با جداکننده \*(Aq\fB=\fP\*(Aq نوشت، یا به‌عنوان آرگومان بعدی قرار داد (یعنی با فاصله در خط فرمان جدا شود). اگر گزینه آرگومان اختیاری داشته باشد، در صورت وجود باید مستقیماً پس از نام گزینه طولانی و با جداکننده \*(Aq\fB=\fP\*(Aq نوشته شود (اگر \*(Aq\fB=\fP\*(Aq را اضافه کنید اما چیزی پشت آن نباشد، چنان تفسیر می‌شود که گویی هیچ آرگومانی وجود نداشته است؛ این یک اشکال جزئی است، به بخش \fBاشکالات\fP مراجعه کنید). گزینه‌های طولانی را می‌توان مخفف کرد، به شرطی که مخفف آن‌ها مبهم نباشد. .sp هر پارامتری که با \*(Aq\fB\-\fP\*(Aq شروع نشود و آرگومان اجباری یک گزینه قبلی نباشد، یک پارامتر غیرگزینه‌ای است. هر پارامتری پس از پارامتر \*(Aq\fB\-\-\fP\*(Aq همیشه به‌عنوان یک پارامتر غیرگزینه‌ای تفسیر می‌شود. اگر متغیر محیطی \fBPOSIXLY_CORRECT\fP تنظیم شده باشد، یا اگر رشته گزینه کوتاه با \*(Aq\fB+\fP\*(Aq شروع شده باشد، به‌محض یافتن اولین پارامتر غیرگزینه‌ای، تمام پارامترهای باقی‌مانده به‌عنوان پارامترهای غیرگزینه‌ای تفسیر می‌شوند. .SH "خروجی (OUTPUT)" .sp برای هر عنصری که در بخش قبل شرح داده شد، خروجی تولید می‌شود. خروجی به همان ترتیبی که عناصر در ورودی مشخص شده‌اند انجام می‌شود، به‌جز پارامترهای غیرگزینه‌ای. خروجی را می‌توان در حالت \fIسازگار\fP (\fIبدون نقل‌قول\fP) یا به گونه‌ای انجام داد که فاصله‌ها و سایر نویسه‌های خاص درون آرگومان‌ها و پارامترهای غیرگزینه‌ای حفظ شوند (به بخش \fBنقل‌قول\fP مراجعه کنید). هنگامی که خروجی در اسکریپت پوسته پردازش می‌شود، به نظر می‌رسد که از عناصر مجزایی تشکیل شده که می‌توان آن‌ها را یکی‌یکی پردازش کرد (با استفاده از دستور shift در بیشتر زبان‌های پوسته). این کار در حالت بدون نقل‌قول ناقص است، زیرا در صورت وجود فاصله یا نویسه‌های خاص، عناصر ممکن است در نقاط غیرمنتظره‌ای تقسیم شوند. .sp اگر در تجزیه پارامترها مشکلی وجود داشته باشد، برای مثال به این دلیل که آرگومان اجباری یافت نشود یا گزینه‌ای ناشناخته باشد، خطایی در stderr گزارش می‌شود، هیچ خروجی برای عنصر خاطی وجود نخواهد داشت و یک وضعیت خطای غیرصفر بازگردانده می‌شود. .sp برای یک گزینه کوتاه، یک \*(Aq\fB\-\fP\*(Aq تکی و نویسه گزینه به‌عنوان یک پارامتر تولید می‌شوند. اگر گزینه دارای آرگومان باشد، پارامتر بعدی همان آرگومان خواهد بود. اگر گزینه یک آرگومان اختیاری بپذیرد اما هیچ آرگومانی یافت نشود، در حالت نقل‌قول پارامتر بعدی تولید می‌شود اما خالی خواهد بود، ولی در حالت بدون نقل‌قول (سازگار) پارامتر دومی تولید نمی‌شود. توجه داشته باشید که بسیاری از پیاده‌سازی‌های دیگر \fBgetopt\fP(1) از آرگومان‌های اختیاری پشتیبانی نمی‌کنند. .sp اگر چندین گزینه کوتاه پس از یک \*(Aq\fB\-\fP\*(Aq تکی مشخص شده باشند، هر یک در خروجی به‌عنوان یک پارامتر مجزا وجود خواهد داشت. .sp برای یک گزینه طولانی، \*(Aq\fB\-\-\fP\*(Aq و نام کامل گزینه به‌عنوان یک پارامتر تولید می‌شوند. این کار صرف‌نظر از اینکه گزینه در ورودی به‌صورت مخفف یا با یک \*(Aq\fB\-\fP\*(Aq تکی مشخص شده باشد انجام می‌شود. آرگومان‌ها مشابه گزینه‌های کوتاه مدیریت می‌شوند. .sp به‌طور معمول، هیچ خروجی پارامتر غیرگزینه‌ای تولید نمی‌شود تا زمانی که تمام گزینه‌ها و آرگومان‌های آن‌ها تولید شده باشند. سپس \*(Aq\fB\-\-\fP\*(Aq به‌عنوان یک پارامتر واحد تولید می‌شود و پس از آن پارامترهای غیرگزینه‌ای به ترتیبی که یافت شده‌اند، هر کدام به‌عنوان یک پارامتر مجزا قرار می‌گیرند. تنها در صورتی که اولین نویسه رشته گزینه‌های کوتاه \*(Aq\fB\-\fP\*(Aq باشد، خروجی پارامتر غیرگزینه‌ای در همان جایی که در ورودی یافت شده است تولید می‌شود (این مورد در صورت استفاده از قالب اول در بخش \fBخلاصه دستور\fP پشتیبانی نمی‌شود؛ در آن حالت تمام رخدادهای پیشین \*(Aq\fB\-\fP\*(Aq و \*(Aq\fB+\fP\*(Aq نادیده گرفته می‌شوند). .SH "نقل‌قول (QUOTING)" .sp در حالت سازگاری، فاصله‌ها یا نویسه‌های «خاص» در آرگومان‌ها یا پارامترهای غیرگزینه‌ای به‌درستی مدیریت نمی‌شوند. هنگامی که خروجی به اسکریپت پوسته داده می‌شود، اسکریپت نمی‌داند چگونه باید خروجی را به پارامترهای جداگانه تقسیم کند. برای دور زدن این مشکل، این پیاده‌سازی قابلیت نقل‌قول‌گذاری (quoting) را ارائه می‌دهد. ایده این است که خروجی همراه با علامت نقل‌قول در اطراف هر پارامتر تولید می‌شود. هنگامی که این خروجی دوباره به پوسته داده می‌شود (معمولاً توسط دستور \fBeval\fP در پوسته)، به‌درستی به پارامترهای جداگانه تقسیم می‌شود. .sp اگر متغیر محیطی \fBGETOPT_COMPATIBLE\fP تنظیم شده باشد، اگر از قالب اول در بخش \fBخلاصه دستور\fP استفاده شود، یا اگر گزینه \*(Aq\fB\-u\fP\*(Aq یافت شود، نقل‌قول‌گذاری فعال نمی‌شود. .sp پوسته‌های مختلف از قواعد نقل‌قول متفاوتی استفاده می‌کنند. می‌توانید از گزینه \*(Aq\fB\-s\fP\*(Aq برای انتخاب پوسته‌ای که استفاده می‌کنید استفاده کنید. در حال حاضر پوسته‌های زیر پشتیبانی می‌شوند: \*(Aq\fBsh\fP\*(Aq، \*(Aq\fBbash\fP\*(Aq، \*(Aq\fBcsh\fP\*(Aq و \*(Aq\fBtcsh\fP\*(Aq. در واقع، تنها دو «گونه» متمایز می‌شوند: قواعد نقل‌قول مشابه sh و قواعد نقل‌قول مشابه csh. به احتمال زیاد اگر از زبان اسکریپت‌نویسی پوسته دیگری استفاده کنید، همچنان می‌توان از یکی از این دو گونه استفاده کرد. .SH "حالت‌های پویش (SCANNING MODES)" .sp اولین نویسه رشته گزینه‌های کوتاه ممکن است یک \*(Aq\fB\-\fP\*(Aq یا یک \*(Aq\fB+\fP\*(Aq باشد تا یک حالت پویش ویژه را مشخص کند. اگر از اولین قالب فراخوانی در بخش \fBخلاصه دستور\fP استفاده شود، این نویسه‌ها نادیده گرفته می‌شوند؛ با این حال، متغیر محیطی \fBPOSIXLY_CORRECT\fP همچنان بررسی می‌شود. .sp اگر نویسه اول \*(Aq\fB+\fP\*(Aq باشد، یا اگر متغیر محیطی \fBPOSIXLY_CORRECT\fP تنظیم شده باشد، تجزیه به‌محض یافتن اولین پارامتر غیرگزینه‌ای (یعنی پارامتری که با \*(Aq\fB\-\fP\*(Aq شروع نمی‌شود) که آرگومان یک گزینه نیست، متوقف می‌شود. تمام پارامترهای باقی‌مانده به‌عنوان پارامترهای غیرگزینه‌ای تفسیر می‌شوند. .sp اگر نویسه اول \*(Aq\fB\-\fP\*(Aq باشد، پارامترهای غیرگزینه‌ای در همان جایی که یافت می‌شوند خروجی داده می‌شوند؛ در حالت عادی، همه آن‌ها در انتهای خروجی پس از تولید یک پارامتر \*(Aq\fB\-\-\fP\*(Aq جمع‌آوری می‌شوند. توجه داشته باشید که این پارامتر \*(Aq\fB\-\-\fP\*(Aq همچنان تولید می‌شود، اما در این حالت همیشه آخرین پارامتر خواهد بود. .SH "سازگاری (COMPATIBILITY)" .sp این نسخه از \fBgetopt\fP(1) به‌گونه‌ای نوشته شده است که تا حد ممکن با سایر نسخه‌ها سازگار باشد. معمولاً می‌توانید بدون هیچ‌گونه تغییری و با بهره‌مندی از برخی مزایا، این نسخه را جایگزین آن‌ها کنید. .sp اگر اولین نویسه از اولین پارامتر getopt یک \*(Aq\fB\-\fP\*(Aq نباشد، \fBgetopt\fP وارد حالت سازگاری می‌شود. این دستور اولین پارامتر خود را به‌عنوان رشته گزینه‌های کوتاه تفسیر می‌کند و تمام آرگومان‌های دیگر تجزیه خواهند شد. این دستور همچنان جابه‌جایی پارامترها را انجام می‌دهد (یعنی تمام پارامترهای غیرگزینه‌ای در انتها خروجی داده می‌شوند)، مگر اینکه متغیر محیطی \fBPOSIXLY_CORRECT\fP تنظیم شده باشد، که در این صورت \fBgetopt\fP به‌طور خودکار یک \*(Aq\fB+\fP\*(Aq را به ابتدای گزینه‌های کوتاه اضافه می‌کند. .sp متغیر محیطی \fBGETOPT_COMPATIBLE\fP دستور \fBgetopt\fP را مجبور می‌کند به حالت سازگاری برود. تنظیم هم‌زمان این متغیر محیطی و \fBPOSIXLY_CORRECT\fP سازگاری ۱۰۰٪ را برای برنامه‌های «دشوار» ارائه می‌دهد. اگرچه معمولاً به هیچ‌یک نیازی نیست. .sp در حالت سازگاری، نویسه‌های ابتدایی \*(Aq\fB\-\fP\*(Aq و \*(Aq\fB+\fP\*(Aq در رشته گزینه‌های کوتاه نادیده گرفته می‌شوند. .SH "کدهای بازگشتی (RETURN CODES)" .sp دستور \fBgetopt\fP کد خطای \fB0\fP را برای تجزیه موفقیت‌آمیز، \fB1\fP را در صورتی که \fBgetopt\fP(3) خطا برگرداند، \fB2\fP را اگر پارامترهای خود را متوجه نشود، \fB3\fP را در صورت وقوع یک خطای داخلی مانند اتمام حافظه (out-of-memory)، و \fB4\fP را در صورتی که با \fB\-T\fP فراخوانی شود برمی‌گرداند. .SH "مثال‌ها (EXAMPLES)" .sp اسکریپت‌های نمونه برای (ba)sh و (t)csh همراه با بسته توزیع \fBgetopt\fP(1) ارائه شده‌اند و در دایرکتوری \fI/usr/share/doc/util\-linux\fP نصب می‌شوند. .SH "محیط (ENVIRONMENT)" .sp \fBPOSIXLY_CORRECT\fP .RS 4 این متغیر محیطی توسط روتین‌های \fBgetopt\fP(3) بررسی می‌شود. اگر تنظیم شده باشد، تجزیه به‌محض یافتن پارامتری که گزینه یا آرگومان گزینه نباشد متوقف می‌شود. تمام پارامترهای باقی‌مانده نیز صرف‌نظر از اینکه با \*(Aq\fB\-\fP\*(Aq شروع شوند یا خیر، به‌عنوان پارامترهای غیرگزینه‌ای تفسیر می‌شوند. .RE .sp \fBGETOPT_COMPATIBLE\fP .RS 4 دستور \fBgetopt\fP را مجبور می‌کند از قالب فراخوانی اول همان‌طور که در \fBخلاصه دستور\fP مشخص شده است استفاده کند. .RE .SH "اشکالات (BUGS)" .sp روتین \fBgetopt\fP(3) می‌تواند گزینه‌های طولانی با آرگومان‌های اختیاری را که یک آرگومان اختیاری خالی به آن‌ها داده شده تجزیه کند (اما نمی‌تواند این کار را برای گزینه‌های کوتاه انجام دهد). این \fBgetopt\fP(1) با آرگومان‌های اختیاری خالی طوری رفتار می‌کند که گویی وجود نداشته‌اند. .sp نحو دستور در صورتی که هیچ متغیر گزینه کوتاهی نخواهید، چندان شهودی نیست (باید آن‌ها را صراحتاً روی رشته خالی تنظیم کنید). .SH "نویسنده (AUTHOR)" .sp .MTO "frodo\(atfrodo.looijaard.name" "Frodo Looijaard" "" .SH "همچنین ببینید (SEE ALSO)" .sp \fBbash\fP(1), \fBtcsh\fP(1), \fBgetopt\fP(3) .SH "گزارش اشکالات (REPORTING BUGS)" .sp برای گزارش اشکالات، از \c .URL "https://github.com/util\-linux/util\-linux/issues" "سامانه پیگیری مشکلات" "." .SH "در دسترس بودن (AVAILABILITY)" .sp دستور \fBgetopt\fP بخشی از بسته util\-linux است که می‌توان آن را از \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux" "بایگانی هسته لینوکس" "."