| PMGETOPT(1) | General Commands Manual | PMGETOPT(1) |
نام (NAME)
pmgetopt - تجزیهکننده گزینههای اسکریپت شل در Performance Co-Pilot
خلاصه دستور (SYNOPSIS)
$PCP_BINADM_DIR/pmgetopt [-u?] [-c file] [-D debug] [-p name] [--] [parameters]
توضیحات (DESCRIPTION)
دستور pmgetopt برای تجزیه گزینههای خط فرمان در اسکریپتهای شلِ مورد استفاده در Performance Co-Pilot (مجموعه ابزار PCP) به کار میرود. این ابزار همچنین برای تولید پیامهای نحوه استفاده (راهنما) برای آن اسکریپتها استفاده میشود.
پارامترهای ارائهشده به pmgetopt به دو شکل هستند: در ابتدا، گزینههای مختص خودِ pmgetopt ارسال شده و با استفاده از سازوکار -- خاتمه مییابند. پس از آن، تمامی پارامترهای منتقلشده به اسکریپت شل باید ارسال شوند (که معمولاً این کار بهسادگی با متغیر "$@" صورت میگیرد).
گزینهها (OPTIONS)
گزینههای خط فرمانِ موجود عبارتند از:
- -c=file, --config=file
- یک file پیکربندی با قالبی که در ادامه شرح داده شده است، با استفاده از این گزینه به pmconfig ارسال میشود. در صورت حذف این گزینه، pmconfig پیکربندی خود را از جریان ورودی استاندارد میخواند.
- -p=name, --progname=name
- هنگام تجزیه پارامترهای اسکریپت شلِ فراخواننده، پیامهای خطا و راهنما به جای ارجاع به خودِ pmgetopt بهعنوان منبع خطا، شامل name برنامه دادهشده خواهند بود.
- -u, --usage
- با استفاده از این گزینه میتوان پیام راهنمای مناسبی برای اسکریپت شل فراخواننده تولید کرد تا آن را بهعنوان راهنمای خود ارائه دهد.
- -?, --help
- نمایش پیام نحوه استفاده برای خودِ pmgetopt و خروج.
pmgetopt پارامترهای دادهشده را تجزیه کرده و خروجی را در قالبی مناسب برای بارگذاری (source کردن) در اسکریپت شل فراخواننده تولید میکند. هنگامی که طبق مشخصات هر دو فرم کوتاه و بلند یک آرگومان مجاز باشند، pmgetopt برای پردازش سادهتر در شل همواره فرم کوتاه را مشخص میکند. اگر آرگومانهایی ارائه شوند که با پیکربندی مطابقت نداشته باشند، درخواستی برای پیام نحوه استفاده (-?) تولید میشود تا اسکریپت فراخواننده به آن پاسخ دهد. هرگونه پارامتر غیراز گزینه، با قرار گرفتن نویسه جداکننده خط فاصله دوبل (--) در ابتدای آن، به اسکریپت فراخواننده بازگردانده میشود. بنابراین یک اسکریپت باید به محض شناسایی این جداکننده، پردازش گزینهها را متوقف کرده و پردازش آرگومانهای غیرگزینهای را آغاز نماید.
برخلاف دستور داخلی شل getopt، متغیرهایی مانند $OPTARG مقداردهی نمیشوند و اسکریپت فراخواننده معمولاً از دستورهای داخلی شل نظیر eval، set و دستور جابهجایی موضعی shift استفاده میکند تا از پردازش صحیح گزینهها اطمینان حاصل شود.
پیکربندی (CONFIGURATION)
قالب پیکربندی مورد استفاده توسط pmgetopt بهگونهای طراحی شده است که شباهت نزدیکی به پیام راهنمایی داشته باشد که در صورت وجود آرگومانهای نامعتبر (یا گزینه -?، --help) تولید میشود.
اساساً دو نوع خط پیکربندی وجود دارد - دستورها و گزینهها. دستورها امکان ارسال فراداده به فرایند پردازش گزینهها را فراهم میکنند، و گزینهها همان گزینههای مجاز خط فرمان هستند که اسکریپت شل خواهد پذیرفت. ابتدای خطوط دستور نویسه هش (#) قرار میگیرد، در حالی که خطوط گزینهها همواره با یک خط تیره (تک یا دوبل) آغاز میشوند. هر خط دیگر در پیکربندی، که ممکن است شامل سرآیندهای راهنما یا متون توضیحی باشد، هیچ اثری بر تجزیه گزینهها ندارد و بدون تغییر در پیام راهنما کپی خواهد شد.
مجموعه دستورها عبارتند از: getopt (مشخصات گزینههای دارای آرگومان کوتاه را بهصورت دستی ارائه میدهد؛ در صورت عدم وجود، از روی گزینههای ارائهشده تولید خواهد شد)، usage (خلاصهای کوتاه و تکخطی ارائه میدهد که در ابتدای پیام راهنما استفاده میشود و پیش از گزارش، مقدار progname در ابتدای آن قرار میگیرد)، و end که به pmgetopt اعلام میکند پردازش دستورها و گزینههای بعدی را متوقف کند - هر متن دیگری پس از آن مشاهده شود، بهسادگی به انتهای پیام راهنما پیوست خواهد شد.
برای هر یک از گزینههای استاندارد PCP، همانطور که در PCPIntro(1) شرح داده شده، یک نماد اختصاری وجود دارد. اگر هر یک از این گزینهها (برای مثال --host) بهصورت یک کلمه منفرد در هر خطی ظاهر شود، به گزینه مناسب برای اسکریپت شل تبدیل خواهد شد، شامل تمام فرادادههای مربوط به آن گزینه (اینکه آیا آرگومانی میپذیرد، فرمهای کوتاه و بلند گزینه و غیره).
استفاده از نماد مساوی («=») نشاندهنده وجود یک آرگومان الزامی برای هر گزینه، هم در فرم کوتاه و هم فرم بلند است. هر گزینه غیراستاندارد باید با توضیحی غیرخالی درباره آن آرگومان همراه باشد.
مثالها (EXAMPLES)
بهعنوان
مثال،
موارد زیر
یک
پیکربندی
معتبر است:
# Usage: [options] node...
Options:
--archive
-d, --delay pause between updates for archive replay
--host
--interval
-i=INST, --insts=INST comma-separated metrics instance list
-r output raw counters (no rate conversion)
--width=N set the width of each column of output
--timezone
--help
این
پیکربندی
در صورت
اجرا به شکل
نشان داده
شده، پیام
راهنمای
زیر را
تولید
خواهد کرد.
$ pmgetopt --usage --progname=clusterstat -- "$@"
Usage: clusterstat [options] node...
Options:
-a FILE, --archive=FILE
metrics source is a PCP archive
-d, --delay pause between updates for archive replay
-h HOST, --host=HOST metrics source is PMCD on host
-t DELTA, --interval=DELTA
sampling interval
-i INST, --insts=INST comma-separated metrics instance list
-r output raw counters (no rate conversion)
--width=N set the width of each column of output
-Z TZ, --timezone=TZ set reporting timezone
-?, --help show this usage message and exit
چندین نمونه از کاربرد pmgetopt بخشی از مجموعه ابزار PCP را تشکیل میدهند؛ بهویژه اسکریپتهای pcp(1) و pmlogmv(1) نمونههای مرجع بسیار خوبی هستند.
محیط PCP (PCP ENVIRONMENT)
متغیرهای محیطی با پیشوند PCP_ برای پارامتریکسازی نام فایلها و دایرکتوریهای مورد استفاده PCP به کار میروند. در هر نصب، فایل /etc/pcp.conf حاوی مقادیر محلی برای این متغیرها است. میتوان از متغیر $PCP_CONF برای مشخص کردن یک فایل پیکربندی جایگزین استفاده کرد، همانطور که در pcp.conf(5) شرح داده شده است.
گزینههای اشکالزدایی (DEBUGGING OPTIONS)
گزینه -D یا --debug خروجی پیامهای عیبیابی تکمیلی را در stderr فعال میکند تا به اولویتبندی و بررسی مشکلات کمک نماید، هرچند این اطلاعات گاهی پیچیده بوده و در وهله اول برای راهنمایی توسعهدهندگان در نظر گرفته شده است تا کاربران نهایی. آرگومان debug فهرستی از گزینههای اشکالزدایی است که با کاما از هم جدا شدهاند؛ از pmdbg(1) همراه با گزینه -l استفاده کنید تا فهرستی از گزینههای اشکالزدایی موجود و مفهوم آنها را به دست آورید.
همچنین ببینید (SEE ALSO)
pcp(1)، pmlogmv(1)، pmgetopt_r(3)، pcp.conf(5) و pcp.env(5).
| PCP | Performance Co-Pilot |