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.
OPCIÓK
--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
"\en"
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-sztring.
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 " sztringből és egy " tétel " sztringbő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."
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.
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."
--gaugeszö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.
FUTÁS KÖZBENI KONFIGURÁCIÓ
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.
KÖRNYEZET
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.
FÁJLOK
$HOME/.dialogrc
alapértelmezett konfigurációs fájl
DIAGNOSZTIKA
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.
HIBÁK
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ú.
SZERZŐ
Savio Lam (lam836@cs.cuhk.hk) - 0.3 verzió
Stuart Herbert (S.Herbert@sheffield.ac.uk) - patch a 0.4 verzióhoz