bashには、コマンドが入力されるたびに実行されるデバッグトラップがあります。これは、実行中のコマンドを示すためにウィンドウのタイトルを設定します。すべての構成の詳細を省略し、次のように整理しました。
export PS1="\[\e]0;$GENERATED_WINDOW_TITLE\a\]$GENERATED_PROMPT"
これは非常にうまく機能しますが、1つの問題があります。 bashシェルがこの機能をサポートしていない環境で実行されると、GENERATED_WINDOW_TITLEはすべてのプロンプトで画面に印刷されます。 X以外の端末でbashを実行するたびにこれが発生します。
bashはこのエスケープシーケンスがサポートされていることをどのように確認しますか?
ベストアンサー1
私はこれを行うことができるterminfo関数がないと思います。実際にテストされた値は十分でなけれTERM
ばなりません。これは私が.bashrc
両方でしたことであり、.zshrc
これが問題になっていたことを覚えていません。
case $TERM in
(|color(|?))(([Ekx]|dt|(ai|n)x)term|rxvt|screen*)*)
PS1=$'\e\]0;$GENERATED_WINDOW_TITLE\a'"$PS1"
esac