Vra

Ek skryf 'n paar klein bash skrifte onder Ubuntu Linux. Ek wil in staat wees om hulle uit te voer van die GUI sonder 'n terminaal venster na enige insette te betree of te sien enige uitset.

Tot dusver het die enigste insette wat nodig is is 'n wagwoord vir sudo - en gksudo hanteer wat fyn. Maar ek het nie gevind 'n maklike manier om 'n boodskap boks nog wys. Is daar 'n soort van opdrag 'gkmessage' beskikbaar? Ek wil iets teenwoordig verkies in 'n standaard Ubuntu te installeer, maar ek gee nie om nie die installering van 'n nuwe pakket, indien nodig.

Was dit nuttig?

Oplossing

Ek glo Zenity sal doen wat jy wil. Dit is spesifiek ontwerp vir die vertoon van GTK vensters van die command line, en dit is beskikbaar as 'n Ubuntu pakket .

Ander wenke

As jy ' Ubuntu baie Distros die notify-send opdrag sal gooi een van daardie lekker bederfbare kennisgewings in die regter boonste hoek. Soos so:

notify-send "My name is bash and I rock da house"

B.e.a.utiful!

Almal noem zenity, daar blyk te baie ander wees. A deurmekaar, maar interessante lys is by http://alternativeto.net/software/zenity/

In die eerste plek 'n voorbeeld van zenity met teks formatering opmaak, venster titel, knoppie etiket.

zenity \
--info \
--text="<span size=\"xx-large\">Time is $(date +%Hh%M).</span>\n\nGet your <b>coffee</b>." \
--title="Coffee time" \
--ok-label="Sip"

gxmessage

gxmessage "my text"

xmessage

xmessage is baie oud so dit is stabiel en waarskynlik beskikbaar in alle uitkerings wat X gebruik (aangesien dit versprei met X). Dit is pas deur X hulpbronne, vir diegene wat reeds die gebruik van Linux of Unix lank genoeg om te weet wat dit beteken (.Xdefaults, enigiemand?).

xmessage -buttons Ok:0,"Not sure":1,Cancel:2 -default Ok -nearmouse "Is xmessage enough for the job ?" -timeout 10

KDialog

(nie getoets)

In 'n PPA

Yad: Zenity op steroïede [Display Grafiese Dialogs Van tolk skripte] ~ Web Upd8: Ubuntu / Linux blog . Dit lyk nie of die motor-grootte vensters.

echo My text | yad \
--text-info \
--width=400 \
--height=200

'n groter voorbeeld

yad \
--title="Desktop entry editor" \
--text="Simple desktop entry editor" \
--form \
--field="Type:CB" \
--field="Name" \
--field="Generic name" \
--field="Comment" \
--field="Command:FL" \
--field="Icon" \
--field="In terminal:CHK" \
--field="Startup notify:CHK" "Application" "Name" "Generic name" "This is the comment" "/usr/bin/yad" "yad" FALSE TRUE \
--button="WebUpd8:2" \
--button="gtk-ok:0" \
--button="gtk-cancel:1"

Ander nie in Ubuntu standaard repositories

  • shellgui
  • xdialog
  • gtkdialog

Off-onderwerp (vir terminale)

whiptail --msgbox "my text" 10 20
dialog --msgbox "my text" 10 20

Voel vry om te verander.

zenity aansoek blyk te wees wat jy is op soek na.

Om insette te neem van zenity , kan jy 'n veranderlike spesifiseer en moet die opbrengs van zenity --entry gered te word. Dit lyk iets soos hierdie:

my_variable=$(zenity --entry)

As jy kyk na die waarde in my_variable nou, dit sal alles getik in die pop-up dialoog inskrywing zenity.

As jy wil 'n soort van vinnige gee oor wat die gebruiker (of jy) in die dialoog sal ingaan nie, voeg die - teks skakelaar met die etiket wat jy wil. Dit lyk iets soos hierdie:

my_variable=$(zenity --entry --text="What's my variable:")

Zenity het baie ander lekker opsies wat vir spesifieke take, sodat jy dalk wil diegene te sien asook met zenity help uit te voer . Een voorbeeld is die -. Kalender opsie wat se laat jy 'n datum van 'n grafiese kalender kies

my_date=$(zenity --calendar)

Watter gee 'n mooi geformatteerde datum op grond van wat die gebruiker gekliek:

echo ${my_date}

gee:

  

2009/08/05

Daar is ook opsies vir skuiwer keurders, foute, lyste en so aan.

Hoop dit help.

Ek het die xmessage opdrag, wat is 'n soort van goed genoeg nie.

Hier is 'n bietjie Tcl script wat sal doen wat jy wil. Die Wens tolk moet geïnstalleer word by verstek op Ubuntu.

#!/usr/bin/wish
pack [label .msg -text [lindex $argv 0]]
pack [entry .ent]
bind .ent <KeyPress-Return> { puts [.ent get]; destroy . }
focus .ent

Noem dit soos volg:

myanswer=`gui-prompt "type your answer and press enter"`

alert en notify-send lyk dieselfde ding wees. Ek gebruik notify-send vir nie-toevoer boodskappe as dit nie fokus te steel en ek kan 'n manier om op te hou zenity ens uit om dit te doen nie vind nie.

Bv.

# This will display message and then disappear after a delay:
notify-send "job complete"

# This will display message and stay on-screen until clicked:
notify-send -u critical "job complete"

Daar is ook dialog en die KDE weergawe kdialog. dialog word deur Slackware, so dit kan nie dadelik beskikbaar op ander uitkerings wees.

Hoe gaan dit Ubuntu se waarskuwing . Dit kan gebruik word nadat 'n operasie om te waarsku dit klaar en selfs wys rooi kruis ikoon van die operasie is klaar met foute

ls -la; alert

As niks anders is teenwoordig. jy kan 'n xterm van stapel te stuur en eggo in dit, soos volg:

 xterm -e bash -c 'echo "this is the message";echo;echo -n "press enter to continue "; stty sane -echo;answer=$( while ! head -c 1;do true ;done);'

Zenity is regtig die presiese instrument wat ek dink dat jy is op soek na.

of

zenity --help

KDialog en dialoog is albei goeie, maar ek wil Zenity beveel. Vinnig, maklik en baie beter lyk die xmessage of dialoog.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top