dialogo: Kiel krei menuojn en via skriptoj

dialogo, informkesto, titi, malantaŭa, Script, Titolo, Bash, Debian, Ubuntu

Dialogo estas komando de GNU / Linukso kiu permesas krei dialogujoj en la fina stacio por vi uzi en via skriptoj programado, Mi montros vin kiel uzi ĉi komando.

Por realigo de ĉi tiu artikolo mi fidis la komandan manlibron kaj sur la sekvaj retpaĝoj donas mian plej sinceran dankon al la kreintoj.

http://ovtoaster.com/scripts-en-linux-con-estilo/
http://linuxgazette.net/101/sunil.html

La koloroj en la aplikoj kaj sistemoj

skribita tekstoj en la komandlinio: blua
Eligo en la komandlinio: verde
Dosiero nomoj kaj dosier enhavo: brunaj

Dialoga instalado

Por povi uzi ĉi tiun ilon en Linukso, la unua afero devas fari estas instali ĝin

Ubuntu

dialogo de sudo apt-get install

Debian

kapablo-akiri instalan dialogon

Ruĝa ĉapelo

yum instali dialogon

Suse

dialogo pri instalado de zypper

Sintakso

Por skatoloj kun nur unu eblo.

Tiom <skatolo-larĝo> <skatolo-alteco> estas reprezentita kun nombraj valoroj se ni metas 0 konformi al enhavo.

dialogo <oftaj opcioj> <skatolaj elektoj> <skatolo-larĝo> <skatolo-alteco>

Ekzemplo:

dialogo - titolo "Titolo"  --Jes Ne "Vi ŝatas la Ruĝan koloron?" 0 0

Por skatoloj kun multoblaj elektoj

Ĝi estas nur por kontrolotaj tipaj skatoloj, menuo aŭ radio-listo. Se ni metas 0 En <nombro de videblaj opcioj> aŭtomate ĝustigas al la nombro de elektoj.

dialogo <oftaj opcioj> <skatolaj elektoj> <skatolo-larĝo> <skatolo-alteco> <nombro de videblaj opcioj>.

Ekzemplo:

dialogo - ĉekokisto "Elektu la eblojn, kiujn vi volas:" 0 0 0  1 fromaĝo sur 2 "Mustardo" On  3 anĉoj

Komunaj ebloj

Ili estas elektoj, kiuj estas en multaj specoj de dialogaj skatoloj. “dialogo” la plej oftaj estas jenaj:

 

Titoloj

dialogo, informkesto, titi, malantaŭa, Script, Titolo, Bash, Debian, Ubuntu

–titolo

Ĝi estas uzata por doni titolon al la dialogujo.

–malantaŭa titolo

Ĝi estas la titolo ĉe la fundo de la fenestro.

Ŝanĝu tekstajn butonojn

–jes-etikedo

Ŝanĝu la vorton YES en la dialogaj skatoloj por tiu, kiun vi volas.

–bone–etiketo

Ŝanĝu la vorton OK en la dialogaj skatoloj por tiu, kiun vi volas.

–nuligi-etikedon

Ŝanĝu la vorton CANCEL en la dialogaj skatoloj por tiu, kiun vi volas.

–elirejo-etikedo

Ŝanĝu la vorton EXIT en la dialogaj skatoloj por tiu, kiun vi volas.

–ne-etikedo

Ŝanĝu la vorton NE en la dialogaj skatoloj por tiu, kiun vi volas.

–meko

Forigu la butonon OK el la dialogujo, premu enter por eniri.

Komando eligo

Ĉi tiuj variabloj permesas decidi, kie la elektoj elektitaj en la komando aperos defaŭlte, ili aperos per la erara eligo se ni volas, ke ni povu atingi ĝin al la ekrano.

–pli stderr

Eligo de la komando al la erara eligo se ni elektas ĉi tiun opcion ni povas akiri la rezulton al dosiero aldonanta ĉe la fino de la dialoga linio.:

2><dosiero kie konservi la rezulton>

–stdout

Per ĉi tiu opcio ĝi montros al ni la rezulton de la komando sur la ekrano, kaj mi uzas ĝin kiam mi volas stoki la komandon en variablo, sed mi ne volas forigi ĝin en provizora dosiero, poste en la ekzemploj ni vidos kiel.

 

Skatolaj elektoj

Mesaĝa skatolo (–msgbox)

dialogo, informkesto, titi, malantaŭa, Script, Titolo, Bash, Debian, Ubuntu

Ĝi estas uzata por meti mesaĝon sur la ekranon ĝis la uzanto premas eniri.

dialogo - titolo "Titolo" --msgbox "Saluton mondo" 0 0

KIEL / NE menuo (–Jes Ne)

dialogo, Jes Ne, Script, Bash, Debian, Ubuntu

Ĝi estas uzata por respondi demandojn kun YES / NO-respondo se la respondo estas YES redonas 0 se la respondo estas NE, ĝi revenas 1

dialogo - titolo "Titolo"  --Jes Ne "Vi ŝatas la Ruĝan koloron?" 0 0

Informkesto (–infobox)

dialogo, infobox, Script, Titolo, Bash, Debian, Ubuntu

Ĉi tiu skatolo montras la informojn, kiujn ni volas sur la ekrano, estas oportune aldoni dormon (komando, kiu atendas x sekundojn por daŭrigi) por povi vidi ĝin.

dialogo - infobox "Atendu 4 sekundoj" 0 0 ; dormu 4

Enira skatolo (–enirejo)

dialogo, enirejo, Script, Titolo, Bash, Debian, Ubuntu

Ĝi estas uzata por kolekti datumojn.

 dialogo - titolo "Nomo" --enirejo "metu vian nomon:" 0 0

Pasvorta skatolo (–pasvorto)

dialogo, pasvorto, Script, Bash, Debian, Ubuntu

Ĝi estas la sama kiel la eniga skatolo sed la signoj skribitaj ne estas montritaj.

 dialogo - titolo "Pasvorto" --pasvorto "Metu vian pasvorton:" 0 0

Teksto skatolo (–tekstujo)

dialogo, tesxtbox, Script, Bash, Debian, Ubuntu, Linux, GNU / linux

La tekstujo estas dosiero-spektilo kaj montras al ni la dosieron, kiun ni indikis.

dialogo - titolo "arkivo fstab" --tekstujo / etc / fstab 0 0

Menujon (–menuo)

dialogo, menuo, Script, Bash, Debian, Ubuntu, Linux, GNU / linux, menuujo

Ĝi permesas al ni elekti opcion inter pluraj numeritaj opcioj

dialogo --menuo "La plej bona omelette estas:" 0 0 0 1 "kun cepo" 2 "sen cepo" 3 "kun piproj" 

Kontrolista skatolo (–kontrollisto)

dialogo, kontrollisto, Script, Bash, Debian, Ubuntu, Linux, GNU / linux

Ĝi estas menuo kun pluraj ebloj, el kiuj ni povas elekti plurajn. La ebloj, kiujn ni enmetas On restos kaj tiuj, kiujn ni enmetos Off viŝita.

dialogo - ĉekokisto "Elektu la eblojn, kiujn vi volas:" 0 0 0  1 fromaĝo sur 2 "Mustardo" On  3 anĉoj

Speciala mencio ene de la checklist por la opcio –aparta eligo, kiu redonas linion por ĉiu elekto farita, tre utila por ekzekuti malsamajn komandojn por ĉiu elekto farita.

Radiolista skatolo (–radiolisto)

dialogo, radiolisto, Script, Bash, Debian, Ubuntu, Linux, GNU / linux

Ĝi estas menuo kun pluraj ebloj, el kiuj ni povas elekti nur unu.

dialogo - radiolisto "Elektu vian plej ŝatatan omelette:" 0 0 0 1 "Kun cepo" Off  2 "Sen cepo" On 3 "De kapsikoj" Off 4 "Asparago" Off

Kalendara skatolo (–kalendaro)

dialogo, calendar, kalendaro, Script, Bash, Debian, Ubuntu, Linux, GNU / linux

Ĝi estas kalendaro, kie ni povas elekti daton.

dialogo - titolo "Kalendaro" --kalendaro "Elektu sagon" 0 0

Aliaj kestaj elektoj

Krom la monaj opcioj, kiujn ni vidis, ekzistas aliaj ebloj, kiuj povas esti interesaj uzi koni ilin, ne hezitu iri al la helpo..

vira dialogo

Kiel uzi la datumojn akiritajn per dialogo

Por uzi la datumojn kolektitajn per la dialogaj skatoloj en skripto estas pluraj ebloj, kiujn mi trovis, sed certe vi povas pensi pri ili sed ne hezitu diri al mi kaj mi aldonos ilin en la afiŝo.

Alidirekta dialoga eligo al dosiero.

Ni povas stoki la rezulton de la dialoga komando al dosiero, kutime ni enmetos ĝin en la dosierujon / tmp kaj forigos ĝin post uzado de ĝi, sube mi metas skripton kun klarigita ekzemplo.

#!/Bin/bash
# De Ignacio Alba Obaya
# Https://aplikojysistemas.com
# ni ekzekutas la dialogan skatolon metante ĉe la fino 2>/tmp / nomo.tmp. $$ 
# ni stokas la enmetitan nomon en dosiero.
# memoru, ke 2> redirekti la eraran eliron al dosiero.
dialogo - titolo "Nomo" --enirejo "metu vian nomon:" 0 0 2>/tmp / nomo.tmp. $$
# ni viŝas la ekranon
klara
# ni montras la konservitan nomon
kato /tmp/nomo.tmp.$$
# ni forigas la dosieron kun la nomo
rm -f /tmp/name.tmp.$$
# ni faras liniopremon por ke ĝi ne amasiĝu kun la prompto
echoo -e "\N"

Stoki la respondon en variablo.

Por stoki la rezulton ni faros ĝin kreante funkcion kaj nomante ĝin de variablo.

#!/Bin/bash
# De Ignacio Alba Obaya
# Https://aplikojysistemas.com
# Vendo dialoga rezulto en variablo
# ni kreis la funkcion fundialog
fundialog = ${fundialog = dialogo}
# ni kreas datan variablon kun la eligo de dialogo 
# redirektado kun - senprokraste la eligo de dialogo 
# ĉe la norma elirejo, rimarku, ke la funkcio estas inter 
# ŝlosilaj akcentoj [ se ne, ĝi ne funkcias.
fecha = `$ fundialog --stdout - titolo "Kalendaro" --kalendaro "Elektu daton" 0 0`
# Ni montras la kaptitan daton
e $ $ dato

Kiel administri kontrollistojn

Ni ankaŭ devas povi administri plurajn elirajn elektojn, kiam ni havas kontrolliston tiamaniere, ke ĉiu opcio ekigas malsamajn eventojn. Unu maniero fari ĉi tion estas la sekva:

#!/Bin/bash
# De Ignacio Alba Obaya
# Https://aplikojysistemas.com

# Ni kreas la ŝanĝiĝeman funcheck en kiu ni stokas la 
# dialoga komando kun --separate-output-opcio
funcheck =(dialogo - separ-eligita --ĉerlisto "Elektu la grupojn, al kiuj ĝi apartenas:" 0 0 0)

# Ni difinas la eblojn kiuj aperos sur la ekrano
# tiuj, kiujn ni markas per, aperos.
ebloj =(1 "eblo 1" On 
 2 "eblo 2" Off
 3 "eblo 3" Off
 4 "eblo 4" Off
 5 "eblo 5" On
 6 "eblo 6" Off
 7 "eblo 7" Off)

# Ni kreas la elektojn funkcio kiu ekzekutas funcheck kun opcioj 
# kaj plusendas la eliron al la fina stacio por la sekva por ekzekuti
# la ordonoj
elektoj = $("${funcheck[@]}" "${ebloj[@]}" 2>&1 >/dev / tty)

# ni purigas la ekranon
klara

# Ni aldonas for por ekzekuti komandon bazitan sur 
# la elektoj elektitaj per vi povas ŝanĝi la echoon 
# iu ajn komando aŭ skriptoj
por elekto en $ elektoj
faru
 kazo $ elekto en
 1)
 #?Eti "Vi elektis la opcion 1"
 ;;
 2)
 #?Eti "Vi elektis la opcion 2"
 ;;
 3)
 #?Eti "Vi elektis la opcion 3"
 ;;
 4)
 #?Eti "Vi elektis la opcion 4"
 ;;
 5)
 #?Eti "Vi elektis la opcion 5"
 ;;
 6)
 #?Eti "Vi elektis la opcion 6"
 ;;
 7)
 #?Eti "Vi elektis la opcion 7"
 ;;
 esac
farita

Konkludoj pri dialogo

Miaopinie dialogo estas eleganta maniero krei menuojn por niaj skriptoj, ĝi ebligas facile krei finajn programojn.

Darte las gracias por leer nuestro blog espero que te guste nuestro contenido, te pediria que no olvides dar +1 o compartir en las redes sociales, no ganamos nada con este blog y es para nosotros cada me gusta o mas 1 es una pequeña recompensa 😀


About Ignacio Alba Obaya

T?Cnico microinform?Tico kaj formador por la posteno. Amanto de la novaj tecnol?Gias. Administra de GNU/Linukso kaj Vindozo.

2 Comments:

Leave al Reply

Your email address will not bo published.