Komut satırından bir mesaj kutusu nasıl oluşturulur?


65

GUI mesaj kutuları veya terminalin içinde görünen mesaj kutuları.

Kullanıcıdan basit girdiler alabilmek ilginç olurdu, örneğin evet / hayır ya da radyo düğmeleri.


8
"Mesaj kutusu" ile neyi kastediyorsunuz? Bir grafik uyarı kutusu, açılır bir mesaj kutusu? Başka bir şey?
polim

Yanıtlar:


110

Standart bir "mesajın etrafındaki kutu" için şunu kullanın boxes:

echo 'This is a test' | boxes

boxesBu gibi görünecek (Birincisi. İkincisi ise özel bir şey cowsay):

Asteriks kutusunun ve bir metin işareti taşıyan bir ASCII-art köpeğinin ekran görüntüsü


Bir uyarı kutusu kastediyorsanız, şunu kullanın notify-send:

notify-send 'title' 'message'

notify-send buna benzer:

"Merhaba Ashframe ..." okunan bir pop-up mesajı


zenityBir açılır pencere için de kullanabilirsiniz :

zenity --error --text="An error occurred\!" --title="Warning\!"

Zenity daha grafikseldir ve aşağıdakileri kullanarak pencerenin bir soru olarak görünmesini sağlamak gibi daha fazla seçeneğe sahiptir:

zenity --question --text="Do you wish to continue/?"

veya aşağıdakileri kullanarak, ilerleme çubuklarını bile kullanın:

find /usr | zenity --progress --pulsate --auto-close --auto-kill --text="Working..."

zenity buna benzer:

düğmeleri, hata, soru, bilgi ve uyarı iletişim kutuları


Veya dialogyalnızca komut satırı için bir mesaj kutusu kullanın:

dialog --checklist "Choose OS:" 15 40 5 \
1 Linux off \
2 Solaris on \
3 'HP UX' off \
4 AIX off

dialog buna benzer:

4 seçenekli TUI iletişim kutusu


Başka bir seçenek whiptail:

whiptail --title "Example Dialog" --msgbox "This is an example of a message box. You must hit OK to continue." 8 78

whiptail buna benzer:

iki metin düğmeli whiptail açılır kutu


Ve eğer gerçekten deliyseniz, şunları kullanın toilet:

toilet -F border -F gay "CRAZY"

toilet buna benzer:

"CRAZY" okuma renkli metin kutusu


3
Gerçekten eksiksiz cevap, faydalı! Teşekkür ederim!

Mükemmel yazma, @polym - zenitygüncelleme ve güncelleme departmanında ayda bir kez sinirlerimi atmak için kullanacağım ...
Frank Nocke

27

xmessage

Bu GUI uyarılarının büyükbabası:

xmessage -center "Hello, World!"

Saf retro iyilik.

Ayrıca X11 sistemlerinde yaygın olarak bulunabileceğine bahse giriyorum.

SO thread: linux'ta bir bash betiğinden gelen bir GUI mesaj kutusu nasıl gösterilir? | Yığın Taşması

Ubuntu 18.04'te test edilmiştir.


Openbox kurulumumdaki kutunun dışında çalıştı. Teşekkürler!
ek

xmessageUbuntu Sunucusuna varsayılan olarak bile yüklenmiştir. Böylece ssh -Y <host> , x bağlantılarını iletirken makineye giriş some-command; xmessage "some-command is done"yapmak ve uzun süre çalışan komut bittiğinde masaüstümde bir bildirim açmak için çalıştırmayı kullanabilirim.
Stephen Ostermiller

@StephenOstermiller evet, bu iyi bir ipucu!
Ciro Santilli

1
Harika komut. To birkaç saniye sonra mesaj otomatik olarak temizleyin: xmessage -timeout 10 "Goodbye in 10s!".
AlainD

8

Ve sonra, çünkü @ polym tamamen en üste çıkan cevap klasik mesajlaşma cevapsız

write <username> [<terminal>]- başka bir kullanıcıya mesaj gönderin. Etkileşimli olarak ya da bir borunun parçası olarakecho "message" | write username

yazmak


Ve tamamlayıcı yazacak, walltüm kullanıcılara mesaj gönderecek

duvar


1

Metni bir Python sarıcısına yönlendirmek istiyorsanız, şunları kullanabilirsiniz terminaltables:

pip3 install colorclass
pip3 install terminaltables

Sonra GitHub Repo'da , bir python sarmalayıcısı yazmak için örneklerden birini kullanabilirsiniz.

görüntü tanımını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.