PMQUERY(1) General Commands Manual PMQUERY(1)

pmconfirm, pmmessage, pmquery - کادر محاوره‌ای چندمنظوره

pmconfirm [-c] [-b button-name] [-B default-button-name] [-t string] [-file filename] [-icon icontype] [-font font] [-header titlebar-string] [-useslider] [-noslider] [-noframe] [-exclusive]

pmmessage [-buttons label1[:value1][,label2[:value2][,...]]] [-center] [-nearmouse] [-default button] [-file filename] [-print] [-timeout sec] message...

pmquery [-input] [all above options...] [message...]

برنامهٔ pmquery یک پیاده‌سازی سازگار با گزینه‌های خط فرمان از ابزارهای xconfirm و xmessage را با ظاهر و رفتاری یکپارچه با pmchart ارائه می‌دهد. به منظور بهبود کارایی اختصاصی آن‌ها برای pmchart، قابلیت‌های متعددی فراتر از ابزارهای اصلی اضافه شده است، اما تا جای ممکن رفتارهای اصلی حفظ شده‌اند.

ابزار pmconfirm به ازای هر گزینهٔ -t مشخص‌شده یک خط متنی (یا در صورت استفاده از گزینهٔ -file، یک فایل) و به ازای هر گزینهٔ -b تعیین‌شده یک دکمه نمایش می‌دهد. هنگامی که یکی از دکمه‌ها فشرده شود، برچسب آن دکمه در خروجی استاندارد pmquery نوشته می‌شود. این سازوکار، روشی برای ارتباط یا دریافت بازخورد از درون اسکریپت‌های شل و ابزاری برای نمایش اطلاعات سودمند به کاربر از سوی یک برنامه فراهم می‌سازد.

ابزار pmmessage پنجره‌ای شامل پیامی از خط فرمان، یک فایل یا ورودی استاندارد را نمایش می‌دهد. این ابزار افزون بر این امکان ارتباط دادن دکمه‌ها به یک وضعیت خروج را فراهم می‌کند، و تنها به‌صورت اختیاری برچسب دکمه را در خروجی استاندارد می‌نویسد.

ابزار pmquery ابزارهای یادشده را گسترش داده تا به‌صورت محدود از ورودی کاربر در قالب متن آزاد نیز پشتیبانی کند. در این حالت -input، با فشرده شدن دکمهٔ پیش‌فرض، هر متن واردشده در خروجی چاپ می‌شود. یک متن پیش‌فرض نیز می‌تواند با استفاده از سازوکارهای مشابه دیگر ابزارها وارد شود.

گزینه‌های خط فرمان مختلفی برای تعیین سبک قلم، سبک قاب، حالت انحصاری (modality) و نمایش یکی از چندین آیکون گوناگون برای ارائهٔ بازخورد بصری متناسب به کاربر در دسترس هستند.

گزینه‌های موجود در خط فرمان عبارتند از:

پنجره را در مرکز صفحه نمایش قرار می‌دهد.
پنجره را نزدیک مکان‌نمای ماوس باز می‌کند.
دکمه‌ای با برچسب button-name نمایش می‌دهد. اگر button-name یک رشتهٔ خالی باشد، دکمه در آن موقعیت نمایش داده نمی‌شود. اگر هیچ گزینهٔ -b ارائه نشود، پیش‌فرض دکمه‌ای با برچسب Continue خواهد بود. وضعیت خروج مرتبط با button-name برابر با صفر است.
دکمه‌ای با برچسب button-name نمایش می‌دهد و آن را به عنوان دکمه‌ای که هنگام فشردن Enter فعال می‌شود مشخص می‌سازد. وضعیت خروج مرتبط با button-name برابر با صفر است.
این گزینه به ازای هر button که با کاما جدا شده باشد، یک دکمه ایجاد می‌کند. هر button شامل یک برچسب است که اختیاری می‌تواند یک دونقطه و یک مقدار وضعیت خروج به دنبال آن بیاید. در صورت انتخاب آن دکمه، مقدار خروج بازگردانده خواهد شد. مقدار خروج پیش‌فرض ۱۰۰ به علاوه شمارهٔ دکمه است. شماره‌گذاری دکمه‌ها از سمت چپ و با عدد یک آغاز می‌شود.
دکمه‌ای با برچسب منطبق با label را به عنوان دکمه پیش‌فرض تعیین می‌کند. اگر مشخص نشود، هیچ دکمه پیش‌فرضی وجود نخواهد داشت. ریسورس متناظر با آن defaultButton است. فشردن Return در هر کجای پنجرهٔ xmessage دکمه پیش‌فرض را فعال می‌کند. دکمه پیش‌فرض دارای حاشیه‌ای پهن‌تر از سایر دکمه‌ها است.
پیام را نمایش می‌دهد. هر تعداد رشته را می‌توان در خط فرمان مشخص کرد (پیش از هر رشته باید گزینهٔ -t بیاید).
فایل filename را نمایش می‌دهد. تمام گزینه‌های -t نادیده گرفته خواهند شد. مقدار `-' برای filename محتوا را از ورودی استاندارد می‌خواند.
آیکون icontype را نمایش می‌دهد که در آن icontype یکی از موارد زیر است: info، error، question، warning، critical. همچنین مقدار action برای سازگاری با نسخه‌های پیشین، به عنوان مترادفی برای error پذیرفته می‌شود. ابزار pmquery علاوه بر انواع اصلی xconfirm که پیش‌تر ذکر شد، انواع آیکون archive و host را نیز پشتیبانی می‌کند.
از fontname به عنوان قلم استفاده می‌کند. این گزینه تنها هنگام استفاده از سامانه پنجره X (یا X Window System) در دسترس است.
از string به عنوان عنوان پنجره استفاده می‌کند.
باعث می‌شود برنامه برچسب دکمه فشرده‌شده را در خروجی استاندارد بنویسد. این رفتار، پیش‌فرض ابزارهای pmconfirm و pmquery است.
باعث می‌شود برنامه برچسب دکمه فشرده‌شده را در خروجی استاندارد ننویسد. این رفتار، پیش‌فرض ابزار pmmessage است.
یک رشتهٔ مشخصات ابعاد و موقعیت (geometry) سازگار با X را به ابزار ارائه می‌دهد. این گزینه تنها هنگام استفاده از X Window System در دسترس است.
هنگام نمایش یک فایل، همواره از اسلایدر (نوار پیمایش) استفاده می‌کند و نیاز به آن را به‌صورت خودکار تشخیص نمی‌دهد.
هیچ اسلایدری ایجاد نمی‌کند و متن را به اندازهٔ پنجره برش می‌دهد، به جای این که نیاز به اسلایدر را خودکار بررسی کند.
هیچ قابی در اطراف محتویات نمایش نمی‌دهد.
صفحه‌کلید و اشاره‌گر ماوس را در انحصار می‌گیرد (grab) و تا زمانی که دکمه‌ای فشرده نشود، اجازهٔ هیچ ورودی دیگری را نمی‌دهد.
اگر کاربر تا secs ثانیه روی هیچ دکمه‌ای کلیک نکند، با وضعیت خروج ۰ خارج می‌شود. ریسورس متناظر با آن timeout است.
-?, -h, -help
پیام راهنمای نحوهٔ استفاده را نمایش می‌دهد و خارج می‌شود.

اسکریپت شل زیر پنجره‌ای با آیکون اطلاعاتی نمایش می‌دهد و از کاربر یک سؤال بله یا خیر می‌پرسد که گزینهٔ پیش‌فرض آن "Yes" است.

#! /bin/sh
case `pmquery -t "Really power down?" -b No -B Yes -icon question
in
  Yes) shutdown;;
  No) ;;
esac

مثال دوم، که نام یک میزبان را درخواست می‌کند و سپس یک ترمینال به همراه یک نشست ssh متصل به میزبان درخواستی باز می‌کند.

#! /bin/sh
host=`pmquery -input -icon host -b Cancel -B OK \
              -header "Remote Terminal - Secure Shell"
[ "$host" = "Cancel" -o -z "$host" ] && exit
gnome-terminal -e "ssh $host"

ابزار pmquery انتخابی عالی برای مقدار پارامتر پیکربندی PCP_XCONFIRM_PROG در Performance Co-Pilot است (برای جزئیات بیشتر به pcp.conf(5) مراجعه کنید).

توجه داشته باشید که متغیر PCP_XCONFIRM_PROG به‌صورت خودکار در ابزارهایی مانند pmchart بر روی pmquery تنظیم خواهد شد، مگر اینکه PCP_XCONFIRM_PROG پیش‌تر در محیط تنظیم شده باشد.

در صورت شناسایی خطا، pmquery همیشه مقدار ۱ را بازمی‌گرداند؛ بنابراین این مقدار نباید به هیچ دکمه‌ای اختصاص داده شود. در صورت موفقیت و مگر در حالتی که از گزینهٔ -buttons استفاده شده باشد، کد بازگشتی صفر خواهد بود.

pmchart(1) و pcp.conf(5).

Performance Co-Pilot