170

私はUbuntulinuxでいくつかの小さなbashスクリプトを書いています。入力を入力したり出力を表示したりするためのターミナルウィンドウを必要とせずに、GUIからそれらを実行できるようにしたい。

これまでのところ、必要な入力はsudoのパスワードだけです-そしてgksudoはそれをうまく処理します。しかし、メッセージボックスを表示する簡単な方法はまだ見つかりません。ある種の「gkmessage」コマンドを使用できますか?デフォルトのUbuntuインストールに存在するものが好きですが、必要に応じて新しいパッケージをインストールしてもかまいません。

4

14 に答える 14

172

Ubuntuの多くのディストリビューションを使用している場合、このnotify-sendコマンドは、右上隅にこれらの素晴らしい腐りやすい通知の 1 つをスローします。そのようです:

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

美しい!

于 2013-01-20T06:58:38.433 に答える
157

Zenityはあなたが望むことをするだろうと私は信じています。コマンドラインからGTKダイアログを表示するために特別に設計されており、Ubuntuパッケージとして利用できます。

于 2008-08-10T06:40:47.603 に答える
99

誰もがゼニティに言及していますが、他にもたくさんあるようです。混乱しているが興味深いリストはhttp://alternativeto.net/software/zenity/にあります。

まず、テキスト書式設定マークアップ、ウィンドウ タイトル、ボタン ラベルを特徴とする zenity の例。

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"

gxメッセージ

gxmessage "my text"

xメッセージ

xmessage非常に古いので安定しており、おそらく X を使用するすべてのディストリビューションで利用できます (X とともに配布されているため)。Linux や Unix を長い間使用していて、それが何を意味するのかを知っている人 ( .Xdefaults、誰か?) のために、X リソースを介してカスタマイズできます。

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

kdialog (KDE ツール)

kdialog --error "Some error occurred"

PPAで

YAD: Zenity On Steroids [シェル スクリプトからグラフィカル ダイアログを表示] ~ Web Upd8: Ubuntu / Linux ブログ. ダイアログのサイズを自動調整しないようです。

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

もっと大きな例

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"

Ubuntu 標準リポジトリにないその他のもの

  • シェルギ
  • xdialog
  • gtkダイアログ

オフトピック (端末用)

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

自由に編集してください。

于 2014-01-28T14:48:46.917 に答える
51

zenityアプリケーションは、探しているもののようです。

zenityから入力を取得するには、変数を指定し、zenity --entryの出力をそれに保存することができます。次のようになります。

my_variable=$(zenity --entry)

ここでmy_variableの値を見ると、zenity ポップアップ エントリ ダイアログに入力された値になります。

ユーザー (またはあなた) がダイアログに何を入力する必要があるかについて何らかのプロンプトを表示したい場合は、必要なラベルで--textスイッチを追加します。次のようになります。

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

Zenity には、特定のタスク用の優れたオプションが他にもたくさんあるため、zenity --helpを使用してそれらも確認することをお勧めします。1 つの例は、グラフィカルなカレンダーから日付を選択できる--calendarオプションです。

my_date=$(zenity --calendar)

これにより、ユーザーがクリックしたものに基づいて適切にフォーマットされた日付が得られます。

echo ${my_date}

与えます:

2009/08/05

スライダー セレクター、エラー、リストなどのオプションもあります。

お役に立てれば。

于 2009-08-05T18:49:22.233 に答える
20

xmessageコマンドを見つけました。これで十分です。

于 2008-08-10T04:26:16.863 に答える
8

これがあなたが望むことをする小さなTclスクリプトです。WishインタープリターはデフォルトでUbuntuにインストールされているはずです。

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

このように呼んでください:

myanswer=`gui-prompt "type your answer and press enter"`
于 2008-08-10T04:34:36.627 に答える
7

dialogKDE版もありkdialogます。 dialogslackware で使用されているため、他のディストリビューションではすぐに利用できない場合があります。

于 2008-09-17T00:26:46.780 に答える
4

Ubuntuのアラートはどうですか。操作が完了したことを警告するために使用でき、操作がエラーで終了した場合は赤い十字アイコンを表示することさえできます

ls -la; alert
于 2016-03-10T15:30:00.537 に答える
3

Zenityはまさにあなたが探しているツールだと思います。

また

zenity --help
于 2008-09-17T02:18:16.280 に答える
0

Kdialog と dialog はどちらも優れていますが、Zenity をお勧めします。xmessage やダイアログをすばやく、簡単に、見栄えを良くします。

于 2008-09-17T02:13:53.420 に答える
0

I'm liking what I'm seeing with script-dialog. It ticks all my boxes, plus some:

  • pop up GUI boxes, but has text-mode fallback
  • support for various sudo variants (gksudo, kde-sudo, ...)
  • can re-launch itself in terminal window

Indeed it's a wrapper for kdialog, zenity, dialog, whiptail and a custom fall-back.

Draw-back is that it doesn't have a CLI, but instead is meant to be sources into a bash script.

于 2021-12-26T02:38:14.990 に答える