コマンドラインからメッセージボックスを作成するには?


65

GUIメッセージボックス、または端末内に表示されるメッセージボックス。

また、ユーザーから単純な入力(たとえば、yes / noまたはラジオボタン)を取得できることも興味深いでしょう。


8
「メッセージボックス」とはどういう意味ですか?グラフィックアラートボックス、ポップアップメッセージボックス?他に何か?
polym 14

回答:


110

標準の「メッセージを囲むボックス」の場合、次を使用しますboxes

echo 'This is a test' | boxes

boxes次のようになります(1つ目。2つ目はのようなカスタムですcowsay)。

アステリックスボックスとテキストの記号を保持しているASCIIアート犬のスクリーンショット


警告ボックスを意味する場合は、次を使用しますnotify-send

notify-send 'title' 'message'

notify-send 次のようになります。

「Hello Ashframe ...」というポップアップメッセージ


zenityポップアップウィンドウにも使用できます。

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

Zenityはよりグラフィカルであり、ウィンドウを質問として表示するなど、より多くのオプションがあります。

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

またはプログレスバーでさえ:

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

zenity 次のようになります。

ボタン付きのエラー、質問、情報、警告ダイアログボックス


またはdialog、コマンドラインのみのメッセージボックスにを使用します。

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

dialog 次のようになります。

4つのオプションを持つダイアログTUI


別のオプションはwhiptail次のとおりです。

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

whiptail 次のようになります。

2つのテキストボタンが付いたホイップテールポップアップボックス


そして、あなたが本当に狂っているなら、使用してtoiletください:

toilet -F border -F gay "CRAZY"

toilet 次のようになります。

「クレイジー」と書かれたカラフルなテキストボックス


3
本当に完全な答え、それは便利です!ありがとうございました!

優れた記事、@ polym – zenity更新とアップグレード部門で月に1度自分の神経をつかむために使用します...
Frank Nocke

27

xmessage

これはGUIアラートの祖父です:

xmessage -center "Hello, World!"

純粋なレトロな良さ。

また、X11システムで広く利用できるはずです。

SOスレッド:LinuxでbashスクリプトからGUIメッセージボックスを表示する方法は?| スタックオーバーフロー

Ubuntu 18.04でテスト済み。


Openboxのインストール時にそのまま使用できます。ありがとう!
aexl

xmessageデフォルトでUbuntu Serverにもインストールされます。したがってssh -Y <host> 、x接続を転送しながらマシンにログインし、実行some-command; xmessage "some-command is done"して長時間のコマンドが終了したときにデスクトップに通知をポップアップ表示するために使用できます。
スティーブンオステルミラー

@StephenOstermillerはい、それは良いヒントです!
Ciro Santilli新疆改造中心法轮功六四事件

1
クールなコマンド。数秒後にメッセージを自動クリアするには:xmessage -timeout 10 "Goodbye in 10s!"
15:49のAlainD

8

そして、@ polymがトップの答えを完全に超えているからといって、古典的なメッセージを逃しました。

write <username> [<terminal>]-別のユーザーにメッセージを送信します。インタラクティブに、またはパイプの一部としてecho "message" | write username

書く


そして、wallすべてのユーザーにメッセージを送信するために書くことを補完します

壁


1

テキストをPythonラッパーにパイプする場合は、次を使用できますterminaltables

pip3 install colorclass
pip3 install terminaltables

次に、GitHubリポジトリで、サンプルの1つを使用してPythonラッパーを作成できます。

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.