GNU/Linux >> Linux の 問題 >  >> Linux

Ubuntu で bash スクリプトからの通知を表示する方法はありますか?

Jaunty で新しい通知システムを使用している場合は、notify-send が必要です コマンド

notify-send - a program to send desktop notifications

SYNOPSIS

With notify-send you can sends desktop notifications to the user via
a notification daemon from the command line.  These notifications can be
used to inform the user about an event or display some form of information
without getting in the user's way.

OPTIONS

-u, --urgency=LEVEL
Specifies the urgency level (low, normal, critical).

-t, --expire-time=TIME
    Specifies the timeout in milliseconds at which to expire the notification.
-i, --icon=ICON[,ICON...]
    Specifies an icon filename or stock icon to display.
-c, --category=TYPE[,TYPE...]
    Specifies the notification category.

Zenity を通じて、別の方法を見つけました

echo 'message:hi' | zenity --notification --listen

またはこのように:

zenity --notification --text "System update necessary!" 

(これには、すでに Ubuntu にインストールされているという利点もあります。)


Ubuntu 14.04、16.04、18.04、20.04 でテスト済み。 Ubuntu 20.04 のスクリーンショット

<オール>
  • [うまく機能] 4 ~ 10 秒後に自動的に閉じるポップアップ通知 (OS の設定に何らかの関係がありますか?):

    notify-send "Hello world"
    


    ソース:https://superuser.com/a/31919/425838

  • クリックするボタンのあるポップアップ ウィンドウ:

    <オール>
  • ウィンドウはオートフォーカスされません: 出典:私自身。注:16.04、-t など、Unity ベースの古いバージョンの Ubuntu の場合 0 以外のすべての値に対して無視されます。 :(. 18.04 や 20.04 などの新しい Gnome ベースのバージョンの Ubuntu の場合、-t は完全に無視されます。したがって、16.04 など、Unity ベースの古いバージョンの Ubuntu では、-t 0 を使用します。 ボタンが表示されますが、新しい Gnome ベースのバージョンでは表示されません。つまり、以下に示す Ubuntu 20.04 のスクリーンショットでは、notify-send -t 0 "Hello world" の動作と外観が notify-send "Hello world" とまったく同じです

    notify-send -t 0 "Hello world"
    

    Ubuntu 18.04 または 20.04 以降では、-u critical を追加するだけです コマンドのどこかをクリックするまで無期限に開いたままにします! :

    notify-send -u critical "Hello world"
    


    出典:この回答の下にある @lucidbrot のコメントと、私自身のテスト。

  • または ウィンドウはオート フォーカスを取得します:

    zenity --info --title "Hello" --text "World"
    

    注:OK をクリックするまで、ウィンドウは閉じません。 ボタン。

    ソース:https://askubuntu.com/a/804475/327339

  • [MY FAVORITE] 指定された --timeout の後、ウィンドウは自動的に閉じます 数秒後、または [OK] ボタンをクリックした後!

    zenity --info --title "Hello" --text "World" --timeout=2
    

    注:上記で指定されたタイムアウト (秒単位) が経過すると、ウィンドウは自動的に閉じます。

    ソース:man ページを読んでいる自分:man zenity

  • [超ブサイク]

    xmessage 'hello world'
    

    注:OK をクリックするまで、ウィンドウは閉じません。 ボタン。

    ソース:http://www.linux-commands-examples.com/xmessage

  • サウンドも再生

    <オール>
  • コマンドや何かの完了を示すために、ウィンドウのポップアップとともに音も鳴らしたい場合は、こちらの私の他の回答を参照してください:AskUbuntu.com:How to make a sound once a process is complete?
  • Linux
    1. Bashスクリプト:バッククォート演算子から$括弧への移動

    2. フォルダから最も古いファイルを削除するためのBashスクリプト?

    3. Bashスクリプト内からフルパスを取得しますか?

    1. BashスクリプトからTmuxセッションに参加しているかどうかを確認するにはどうすればよいですか?

    2. Bashスクリプトでクリップボードとの間でパイプする

    3. アトミック作成ファイルが存在しない場合は、bash スクリプトから

    1. bashスクリプトが同時に実行されないようにする

    2. ソフトウェアがインストールされているかどうかを(スクリプトから)検出する最良の方法は?

    3. Bashスクリプト実行からのRsync不明なオプション?