Bagaimana cara membuat kotak pesan dari baris perintah?

65

Baik kotak pesan GUI, atau kotak pesan yang ditampilkan di dalam terminal.

Menarik juga untuk mendapatkan input sederhana dari pengguna, mis. Ya / tidak atau tombol radio.

pengguna62511
sumber
8
Apa yang Anda maksud dengan "kotak pesan"? Kotak peringatan grafik, kotak pesan munculan? Sesuatu yang lain
Polym

Jawaban:

110

Untuk "kotak di sekitar pesan" standar, gunakan boxes:

echo 'This is a test' | boxes

boxesakan terlihat seperti ini (Yang pertama. Yang kedua adalah seperti kebiasaan cowsay):

Cuplikan layar kotak asterix dan anjing seni ASCII yang memegang tanda teks


Jika Anda bermaksud kotak peringatan, gunakan notify-send:

notify-send 'title' 'message'

notify-send terlihat seperti ini:

Pesan pop-up bertuliskan "Hello Ashframe ..."


Anda juga dapat menggunakan zenityuntuk jendela sembulan:

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

Zenity lebih grafis dan memiliki lebih banyak opsi, seperti membuat jendela muncul sebagai pertanyaan, menggunakan:

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

atau bahkan progress bar, menggunakan:

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

zenity terlihat seperti ini:

kesalahan, pertanyaan, info, dan kotak dialog peringatan dengan tombol


Atau gunakan dialog, untuk kotak pesan hanya baris perintah:

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

dialog terlihat seperti ini:

dialog TUI dengan 4 opsi


Pilihan lain adalah whiptail:

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

whiptail terlihat seperti ini:

kotak pop-up whiptail dengan dua tombol teks


Dan jika Anda benar-benar gila, gunakan toilet:

toilet -F border -F gay "CRAZY"

toilet terlihat seperti ini:

kotak teks berwarna-warni bertuliskan "GILA"

polym
sumber
3
Jawabannya benar-benar lengkap, ini berguna! Terima kasih!
Tulisan yang luar biasa, @polym - Saya akan gunakan zenityuntuk membuat saya gelisah sekali dalam sebulan di departemen pembaruan & peningkatan ...
Frank Nocke
27

xpesan

Ini adalah kakek dari peringatan GUI:

xmessage -center "Hello, World!"

Kebaikan retro murni.

Saya juga bertaruh bahwa itu harus tersedia secara luas pada sistem X11.

SO utas: Bagaimana menampilkan kotak pesan GUI dari skrip bash di linux? | Stack Overflow

Diuji di Ubuntu 18.04.

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
sumber
Bekerja di luar kotak pada instalasi Openbox saya. Terima kasih!
aexl
xmessagebahkan diinstal pada Server Ubuntu secara default. Jadi saya bisa menggunakan ssh -Y <host> untuk masuk ke mesin sambil meneruskan koneksi x dan kemudian jalankan some-command; xmessage "some-command is done"untuk memunculkan notifikasi di desktop saya ketika perintah lama berjalan selesai.
Stephen Ostermiller
@StephenOstermiller ya, itu tip yang bagus!
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
1
Perintah keren. Untuk auto-menghapus pesan tersebut setelah beberapa detik: xmessage -timeout 10 "Goodbye in 10s!".
AlainD
8

Dan kemudian hanya karena jawaban @ polym sepenuhnya di atas terjawab pesan klasik:

write <username> [<terminal>]- mengirim pesan ke pengguna lain. Baik secara interaktif atau sebagai bagian dari pipa denganecho "message" | write username

menulis


Dan komplemen untuk menulis, wallmengirim pesan ke semua pengguna

dinding

HBruijn
sumber
1

Jika Anda ingin menyalurkan teks ke bungkus Python, Anda dapat menggunakan terminaltables:

pip3 install colorclass
pip3 install terminaltables

Kemudian di Repo GitHub , Anda dapat menggunakan salah satu contoh untuk menulis pembungkus python.

masukkan deskripsi gambar di sini

not2qubit
sumber