私は最近、各コマンドの終了コードを含む小さな画面通知を提供するalert
""コマンドを私のコマンドに含めましたPROMPT_COMMAND
(長期実行ジョブを開始したときに常に追加することを忘れてしまったためnotify-send
)。alert
これは魅力のように働いたが、いくつかの問題を発見した。
ネットワーク上の他のコンピュータにログインして接続を切断しようとすると、exit
「ログアウト」というメッセージが表示され、そのまま残ります。 [ctrl] + [c]を押すと、問題なくローカルセッションに戻ります。alert
すべてのSSHセッションから「auto-」を削除すると、問題がなくなることがわかりました。大きな問題ではありませんが、何が起こっているのか、可能であればどのように修正できるかを知りたいです。
以下はコマンドです(私のエイリアス)。
alias alert='notify-send --urgency=low -i "$([ $? -eq 0 ] && echo terminal || echo error)" "$(history 1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
これは私の.bashrcにあります。
if [[ "$PROMPT_COMMAND" != alert* ]]; then # && ([ -z "$SSH_CLIENT" ] || [ -z "$SSH_TTY" ]); then
PROMPT_COMMAND="alert; $PROMPT_COMMAND"
fi
その行にコメントを追加すると(remove ; then #
)、ログインセッションは問題なく直ちに終了します(もちろん、長期実行ジョブが終了したという通知もありません)。