tput sgr0 コマンドは、端末のフォントとテキストの色を変更します。これをどのように停止しますか? tput sgr0以降のすべてのエコー出力は太い白です。

tput sgr0 コマンドは、端末のフォントとテキストの色を変更します。これをどのように停止しますか? tput sgr0以降のすべてのエコー出力は太い白です。

これにより、tput sgr0ターミナルのフォントと色が白色(黒色でなければならない)に変わり、ムクトゥク見えます。

スクリーンショットをご覧ください。

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

どうすればこれを止めることができますか?

より簡潔に言えば、これecho以降の内容tput sgr 0は太い白で出力されるように見え、端末テキストの色は黒です。

修正する:

私のもの~.bashrc

export LC_ALL="en_GB.UTF-8"
export BASH_SILENCE_DEPRECATION_WARNING=1

branch() {
  git branch 2> /dev/null | \ 
  grep \*                 | \ 
  awk '{print$2}'         | \ 
  sed '
    s#^#(#g;
    s#$#)#g
  '
 }

colo() { tput setaf $1; }


PS1='`tput bold``colo 5`\W: `tput sgr0``colo 0``branch``colo 0` \n λ '

答え1

コードsgr0man terminfoすべてのプロパティをオフにする」。

コードsgrは「ビデオプロパティ#1〜#9定義(PG9)「値を取り、1.. 9;シーケンスsgr 0は定義されていません。質問におよび両方を使用しましたsgr0sgr 0

残りの答えは、sgr0他のシーケンスが有効ではないためと仮定されます。


tput sgr0端末を白黒にリセットを使用している場合、これらの色はデフォルト(リセット)モードの一部です。そのため、好みのカラースキームをデフォルトとして使用するようにターミナルアプリケーションを設定するのではなく、特定の前景色と背景色を設定するための指示をシェル初期化ファイルの1つに配置するとします。これはsgr0コードによって(正しく)リセットされます。

2つの考えられる解決策を考えましたが、

  1. デフォルトのリセット値になるようにシェル設定ファイルで設定するのではなく、目的の色を使用するようにターミナルアプリケーションを直接設定します。
  2. 印刷するたびに好みの前景と背景のプロパティを設定するには、シェルプロンプトコマンドを変更します。

関連情報