与えられたランダムなタスクを完了するときにスクリプトを実行するコマンドを追加するには何が必要ですか?

与えられたランダムなタスクを完了するときにスクリプトを実行するコマンドを追加するには何が必要ですか?

私は遊んでいます。押し下げるそして、これを任意のコマンドの引数として使用して、そのタスクが何であれ、タスクの終わりにPushoverスクリプトを実行できる場合は素晴らしいと思いました。

これが可能なのか、どうすればいいのか分からないけど学びたいです。

RasPi Stack Exchange サイトの質問です。これにより私はこれについて考えました。しかし、コンパイル作業が最終的に完了したら教えてくれるなど、成功かどうかを知らせるなど、活用度が高いと思います。

私はそれが次のように見えると思います。

     $ apt-get -b source packagename -pushover "Compile job complete."

アイデアは、「-pushover [ここにメッセージテキストを入力する]」パラメータが続くすべてのコマンドがPushoverスクリプトを実行し、APIを使用してアプリケーションを介して通知することです。

だから質問は「このようにすることができますか?」です。では、どこから始めるべきでしょうか?それ以外の場合は、実行中のコマンドによって制限されず、同じ操作を実行するより良い方法はありますか?

私はそれをコマンド引数として使用するという考えにとらわれませんが、各コマンドに対して別々のスクリプトを書く必要なしに任意のコマンドで実行できる方法が欲しいです。

私はLinuxに初めて触れたので、これが実現不可能なアイデアなら、なぜ動作しないのかについて合理的な説明がある限り、この答えも受け入れます。

答え1

他の方法で行うことができます:

$ pushover-notify "This is my message" command arg1 arg2

スクリプトはpushover-notify次のとおりです。

#!/bin/sh
TOKEN=your_token
USER=your_user
MSG="$1"
COMMAND="$2"
shift 2
if "$COMMAND" "$@" ; then
   # here run your send-message script, with message "$MSG". for example:
   curl -s \
        -F "token=$TOKEN" \
        -F "user=$USER" \
        -F "message=$MSG" \
        https://api.pushover.net/1/messages
else
   # here send some message indicating failure, or don't do anything. for example:
   curl -s \
        -F "token=$TOKEN" \
        -F "user=$USER" \
        -F "message=command failed: $COMMAND $@" \
        https://api.pushover.net/1/messages
fi

答え2

私のプログラムが私に電子メールを送信するか、タスクが完了したらコンソールにビープ音が鳴るようにします。 &&文字を使用してコンソールに前のコマンドが完了するのを待ってから、プロセス全体を別の&で終了してコンソールコントロールを取得するように指示します。

したがって、あなたの例は次のとおりです。

apt-get -b ソースパッケージ名&& sleep 10 && Pushover "コンパイル操作が完了しました。" &

良い測定のために睡眠10を追加しました。私はPushoverの構文を知りません。

または、Pushoverを使用していない場合は、mailxを使用して電子メールまたはtxtメッセージを送信するか、echo -a "\a"を使用してコンソールビープ音を鳴らすこともできます。

関連情報