私は現在活動が開始され完了したときにリモートコンピュータにメッセージを表示するために壁を使用しています。ただし、これは開いている編集者などを介して作成されるため、邪魔になります。
私が好きなのは、ユーザーが端末でEnterキーを押すと、次の行に「未読メールメッセージがあります」というメッセージが表示されることです。
これは何ですか?リモートでどのようにやり取りするのですか?
答え1
この行はシェルによって印刷されます。さまざまなシェルは少し異なる方法でメールの検索を実装しますが、人々が望むようにシェルを構成できる場合を除き(他のシェルを選択することもできます)、メールを送信する必要があります。
組み込みの電子メール通知に加えて、インタラクティブな使用のために設計された良いシェルは、プロンプトを表示する前に任意のコマンドを実行できます。ユーザーにファイルを提供したり、cat
より複雑なタスクを実行したりできます。 zshユーザーの場合は、次のように入力します~/.zshrc
。
precmd () {
if [[ /etc/sysadmin-message -nt ~/.sysadmin-message-timestamp ]]; then
cat /etc/sysadmin-message
touch ~/.sysadmin-message-timestamp
fi
}
Bashユーザーの場合は、次のように入力します~/.bashrc
。
PROMPT_COMMAND='
if [[ /etc/sysadmin-message -nt ~/.sysadmin-message-timestamp ]]; then
cat /etc/sysadmin-message
touch ~/.sysadmin-message-timestamp
fi
'
答え2
Wall
書き込みは開いているプログラム全体で発生しますが、ほとんどのエディタには、エディタの外側の画面に作成されたすべての内容をクリーンアップする一種の「再描画」コマンドがあります。テキストは実際に編集者の内容を損なうことはありません。
必要なことをするには、precmd()
ユーザーシェルの機能を活用して創造性を発揮する必要があります。すべてのコマンドの前にそのキューを確認するには、ある種の通知キューを作成してユーザーシェル構成を設定する必要があります。少しオーバーヘッドがあるので、このビットを書く方法に注意してください。