web-dev-qa-db-ja.com

デスクトップ通知に端末コマンドの結果を表示する

通知に端末コマンドの結果を表示する必要があります。

通知は、次を実行することでトリガーできます。

notify-send "Notification message"

私が持っているコマンドは次のとおりです。

Sudo /opt/lampp/xampp start

ターミナルに次の結果が表示されます。

Starting XAMPP for Linux 5.6.20-0...
XAMPP: Starting Apache...already running.
XAMPP: Starting MySQL...already running.
XAMPP: Starting ProFTPD...already running.

「通知メッセージ」がnotify-sendで表示されるように、この結果を通知に表示する必要があります。

ありがとう!

5
M. Zeeshan

ほとんどの場合、 コマンド置換$()notify-sendを使用できます。例えば:

notify-send "XAMP Start" "$(Sudo /opt/lampp/xampp start)"

スクリプト内では、関数を使用して出力全体をラップできます。

#!/bin/bash
main() { echo "Line 1"; echo "Line 2";  echo "Line 3"; }
notify-send "Script output" "$(main)"

Sudoでその関数を実行する必要がある場合:

notify-send "Script output" "$(Sudo bash -c "$(declare -f main); main")"
8
pa4080