xtermヘッダー設定がsshでは機能しません

xtermヘッダー設定がsshでは機能しません

フォローするUnixシステム投稿して行を追加しました。

trap 'echo -ne "\033]0;$BASH_COMMAND\007"' DEBUG

私の.bashrcファイルに入れて、最後のコマンドを端末のタイトルに設定します。私のUbuntuデスクトップではうまくいきます。

この行を Centos サーバー上の.bashrcファイルに追加し、Centos システムに ssh を追加すると動作しなくなります。 SSHクライアントヘッダーは空白になり、すべてのコマンドの後、すべてのゴミが自分のコンソールに印刷されます。

Last login: Sun Jun  7 21:28:29 2015 from sk-box
]2;printf "k%s@%s:%s]0;printf "k%s@%s:%s" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"[root@sk-vbox ~]# cd
]2;printf "k%s@%s:%s]0;printf "k%s@%s:%s" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"[root@sk-vbox ~]# pwd
/root
]2;printf "k%s@%s:%s]0;printf "k%s@%s:%s" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"[root@sk-vbox ~]# 

SSHを使用して動的ヘッダーを正しく機能させることはできますか?

答え1

PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
trap 'echo -ne "\033]0;$BASH_COMMAND\007"' DEBUG

これら2つのコマンドは互いに干渉します。以前に実行されたコマンドの代わりにBASH_COMMAND最終的に含まれます。ヘッダーテキストの閉じたタグであるバックスラッシュ拡張ベル文字が含まれているため、PROMPT_COMMAND結果は非常に混乱しています。プロンプトの前に文字列が表示され、2番目のものを印刷すると着信音が鳴ります。また、.NETで追加レベルのバックスラッシュ拡張を実行しています。PROMPT_COMMAND\007PROMPT_COMMAND\007BASH_COMMAND

DEBUGトラップを特殊文字を印刷しないより強力なトラップに置き換えます。

trap 'printf "\033]0;%s\007" "${BASH_COMMAND//[^[:print:]]/}"' DEBUG

関連情報