プログラムが開いているシェルについて自分で知らせることはできますか?

プログラムが開いているシェルについて自分で知らせることはできますか?

CLIプログラムを作成する予定です。 CLIプログラムはスケジュールされた時間に実行できる必要があります。

プログラムは何らかの形でユーザーのシェルに通知できますか?mail未読のメールがあることを知らせるのと似ていますか?

答え1

答え2

メール確認の実装様々な殻に。ユーザーが使用できるシェルに追加のチェックを追加したくない場合があります。同様のチェックを実行する最も簡単な方法は、通知を表示する必要があるときに適切な出力を生成するツールを実装し、ユーザーのシェル起動スクリプトでツールを実行することです。

これには多くの例があります。システムをチェックすると、インスピレーションを/etc/profile.d得るための同様のツールを見つけることができます。たとえば、RHELなどのシステムでは、abrtユーザーがログインしたときにステータスをabrt-console-notification.sh表示するスクリプトを見つけることができます。abrt

答え3

write usercronジョブで試してみてください。入れるような

x y z * * write user%message%

あなたのcrontab

ただし、注:このユーザーは通知を受け取るにはログインする必要があります。 GUIの下の単純な端末セッションはそうではありません。

(最近)bashまたは同様のシェルを使用している場合は、PROMPT_COMMAND任意のファイルを使用して設定します。

PROMPT_COMMAND='[ -f /tmp/msg ] && cat /tmp/msg && rm /tmp/msg'

crontab次の項目があります。

x y z * * echo message > /tmp/msg

「メッセージ」は、次のプロンプトの前に一度表示されます。

関連情報