dialog - párbeszéddobozokat jelenít meg
shell-scriptekben
ÁTTEKINTÉS
dialog --clear
dialog --create-rc fájl
dialog [ --title cím ] [ --backtitle
háttércím ] [ --clear ] [
--separate-output ] doboz-opciók
A dialog olyan program, aminek
segítségével sokféle kérdést vagy
képernyőüzenetet lehet megjeleníteni,
párbeszéddobozok segítségével, egy
shell-scriptből. Jelenleg a következő
típusú párbeszéddobozok
alkalmazhatók:
igen/nem doboz, menü doboz, bevitel
doboz, üzenet doboz, szöveg doboz,
infó doboz, választólista doboz,
rádiólista doboz és mérték
doboz.
- --clear
- A képernyő a
képernyő-attribútumnak megfelelően
törlődik kilépéskor.
- --create-rc
fájl
- Mivel a dialog lehetővé teszi a futás
közbeni konfigurálást, ezt felhasználhatjuk
egy minta konfigurációs fájl
létrehozására, ennek neve fájl.
- --separate-output
- A választólista-képernyőelemeknél a
kimenet csak egy sort szolgáltat egyszerre,
idézőjelek nélkül. Ez
megkönnyíti más programok számára a
továbbfeldolgozást.
- --title
cím
- Beállítja a cím szövegét, ami a
párbeszéddoboz tetején jelenik meg.
- --backtitle
háttércím
- Beállítja a háttércím
szövegét, ami a képernyő tetején, a
háttérben fog megjelenni.
- Doboz-opciók
- --yesno
szöveg magasság szélesség
- Egy igen/nem párbeszéddobozt jelenít meg, a
magasság által megadott sor- és a
szélesség által megadott oszlopszámmal.
A szöveg a párbeszéddoboz belsejében
fog megjelenni. Ha a szöveg túl hosszú ahhoz, hogy
egy sorban elférjen, akkor automatikusan feldarabolódik a
megfelelő helyeken. A szöveg karakterlánc ezen
kívül tartalmazhat egy "\n" vagy
`\n´ újsor al-karakterláncot is a
sortörés pontos vezérlésére. Ez a
típusú doboz jól használható olyan
kérdések feltételére, amelyek a
felhasználótól egy egyszerű igen vagy nem
választ várnak. A párbeszéddoboz tartalmaz
egy Yes és egy No (Igen / Nem) gombot, melyek
között a felhasználó a TAB
billentyű lenyomásával válthat.
- --msgbox
szöveg magasság szélesség
- Az üzenet doboz nagyon hasonlít az igen/nem
dobozhoz. Az egyetlen eltérés az üzenet doboz
és az igen/nem doboz között az, hogy az
üzenet doboznak csak egyetlen OK gombja van. Ez a
doboz felhasználható bármilyen üzenet
kiíratására. Miután elolvasta az
üzenetet, a felhasználó lenyomhatja az ENTER
billentyűt, ezáltal a dialog kilép és a
hívó shell folytathatja a
működését.
- --infobox
szöveg magasság szélesség
- Egy infó doboz alapvetően egy üzenet
doboz. Ebben az esetben azonban a dialog az üzenet
megjelenítése után azonnal kilép. A
képernyőt nem törli le a dialog
kilépéskor, így az üzenet addig ott marad,
amíg a hívó shell le nem törli azt
később. Ez akkor hasznos, ha informálni akarjuk a
felhasználót arról, hogy bizonyos még
folyó műveletek igényelhetnek kis időt a
befejeződésükhöz.
- --inputbox
szöveg magasság szélesség
[alapszöveg]
- Az input doboz akkor hasznos, ha olyan kérdéseket
akarunk feltenni, amire a felhasználónak egy
szöveggel kell válaszolnia. Ha az alapszöveg is meg
van adva, akkor ez lesz az alapértelmezett
válasz-karakterlánc. A szöveg bevitelekor a
BACKSPACE gombot használhatjuk a gépelési
hibák javítására. Ha a beírt
szöveg hosszabb annál, hogy beleférjen a beviteli
mezőbe, akkor az elgördül. Kilépéskor a
bevitt szöveg a stderr hibacsatornára
íródik ki.
- --textbox
fájl magasság szélesség
- A szövegdoboz segítségével egy
szövegfájl tartalmát jeleníthetjük meg
egy ablakban. Ez olyan, mint egy egyszerű
szövegnézőke. A felhasználó mozoghat a
fájlban a FEL/LE, PGUP/PGDN és HOME/END
billentyűkkel, amelyek a legtöbb billentyűzeten
megtalálhatók. Ha a sorok túl hosszúak ahhoz ,
hogy kiférjenek az ablakban, akkor a BAL/JOBB gombok
használhatók a szövegterület vízszintes
elmozgatására. A további kényelem
szempontjából az előre- és
hátrairányú keresési funkciókat is
megvalósították.
- Ahogy a neve is mondja, a menü doboz egy olyan
párbeszéddoboz, amely megjelenít egy
választási listát, amelyből a
felhasználó választhat. Minden menüpont egy
címke karakterláncból és egy
tétel karakterláncból áll. A
címke egy nevet ad a menüpontnak, ami
megkülönbözteti a többi
bejegyzéstől. A tétel egy rövid
leírása annak az opciónak, amit a menüpont
jelent. A felhasználó mozoghat a menüpontok
között a FEL/LE nyilak lenyomásával, a
címke első betűjének mint
forróbillentyűnek a lenyomásával, vagy az
1-9 számbillentyűkkel. Létezik
menü-magasság bejegyzés is, ami megadja,
hány menüpont legyen egyszerre kiírva, de a
menü elgördül, ha ennél több
bejegyzés van. Amikor a dialog kilép, a
címke a kiválasztott menüpontból
kiíródik a stderr hibacsatornára.
- --checklist
szöveg magasság szélesség
lista-magasság [ címke tétel állapot
] ...
- A választólista hasonlít a menü
dobozhoz abban, hogy több lehetőség
közül választhatunk egy menü
formájában. Ahelyett azonban, hogy
választanánk egyet a menüpontok közül,
minden bejegyzést ki- vagy bekapcsolhat a
felhasználó. Az eredeti ki/be állapotot az
állapot szabályozza. Kilépéskor azok a
címke karakterláncok lesznek kiírva a
stderr hibacsatornára, amelyeknek állapota
bekapcsolt.
- --rádiólista
szöveg magasság szélesség
lista-magasság [ címke tétel állapot
] ...
- A rádiólista doboz hasonló a
menü dobozhoz. Az egyetlen eltérés az, hogy
beállítható, melyik menüpont van jelenleg
kiválasztva, az állapot
átváltásával on-ra.
- --gauge
szöveg magasság szélesség
százalék
- A mérték doboz egy mértéksávot
jelenít meg a doboz alján. A sáv jelzi a
százalékértéket. Új
értékeket a szabványos bemenetről lehet
beolvasni, egy egész számot soronként. A sáv
frissítődik, hogy jelezze az új
százalékértéket. Ha a bemenet XXX, a
következő sorokat egészen a következő
XXX-ig egy új prompt-hoz használja fel a program. A
bemeneten érkező EOF jelre fejeződik be a sáv
működése.
- 1.
- Készítsünk egy példa
konfigurációs fájlt a következők
begépelésével:
"dialog --create-rc <fájl>"
- 2.
- Induláskor a dialog a következőképpen
határozza meg a beállításokat:
- a)
- ha a DIALOGRC környezeti változó be van
állítva, ennek értéke adja meg a
konfigurációs fájl nevét.
- b)
- ha az (a) alatti fájl nem található, a
$HOME/.dialogrc fájl-t használja fel mint
konfigurációs fájlt.
- c)
- ha a (b) alatti fájl sem található, akkor a
fordításkori alapértékeket
használja.
- 3.
- Szerkesszük a minta konfigurációs fájlt
és másoljuk olyan helyre, amit a dialog
megtalál, a 2. lépésben leírtak szerint.
- DIALOGRC
- Állítsuk be ezt a változót, ha meg
kívánjuk adni a használandó
konfigurációs fájl helyét.
- $HOME/.dialogrc
- alapértelmezett konfigurációs fájl
A kilépési kód 0, ha a dialog a
Yes-el vagy az OK gomb lenyomásával ért
véget, és 1, ha a No vagy a Cancel gomb volt
lenyomva. Egyébként, ha hiba fordul elő a dialog
-on belül vagy a dialog az ESC billentyű
lenyomására lépett ki, a kilépési
kód -1.
A tab karaktereket tartalmazó
szövegfájl-ok problémát okozhatnak a
szöveg dobozban. A tab karaktereket
előzőleg szóközzé kell alakítani,
ha meg akarjuk jeleníteni egy szöveg dobozban.
- A
képernyőfrissítés túl
lassú.
Savio Lam (lam836@cs.cuhk.hk) - 0.3 verzió
Stuart Herbert (S.Herbert@sheffield.ac.uk) - patch a 0.4
verzióhoz
Szijjártó László
<laca@janus.gimsz.sulinet.hu>