デバッグトラップの端末タイトルの更新により色が破損する

デバッグトラップの端末タイトルの更新により色が破損する

端末のタイトルは、次の構文を使用して更新できます。

echo -ne "\033]0;TITLE\a"

またどこに\a行けますか\007? (プロセス開始時)ウィンドウのタイトルを動的に更新するには.bashrcこの回答、簡素化):

MY_TRAP_DEBUG() {
    echo -ne "\033]0; ${BASH_COMMAND} \a"
}
trap MY_TRAP_DEBUG DEBUG

うまくいきます。ただし、カラー出力を印刷するには、次の手順を実行します。

echo -e "\033[0;33m SOME YELLOW TEXT"

、出力にはコマンドが含まれ、結果はASCIIサラダです。以下のスクリーンショットをご覧ください。

ここに画像の説明を入力してください。

  1. なぜ?
  2. どうすれば解決できますか?

ベストアンサー1

以下は2つの質問です。

  • なぜ?

    エスケープシーケンスは。タイトルシーケンスは次から始まり\033]0;、次に終わります。\a または他の制御シーケンス

  • この問題をどのように解決しますか?

    あなたはできます消毒するbashコマンドを使用して変数に代入し、シェルパラメータ置換を使用してエスケープ文字(および\aASCII BEL)を削除します。見やすくするには、角かっこ(または[または])エスケープ文字の後に、そして可能な後続の数字引数の後に。

BASH_REMATCH誰かがそれを使用し(正規表現マッチングの副作用として設定)、次のように使用する例を提供できますか?言葉置き換えて${parameter##word}...

おすすめ記事