Windows の bash ターミナルにおける「color a」、「color b」に相当するもの

Windows の bash ターミナルにおける「color a」、「color b」に相当するもの

Windows OS では、color aまたはcolor bなどと入力するだけでcolor c、ターミナルのフォントの色を一時的に変更できます。

bash ターミナルでこれを行うコマンドはありますか?

永続的な変更はしたくないので、オープンセッションだけで十分です。

答え1

あなたが言及しているのは指示0からf(つまり10進数の0から15)の値を期待します。類似のコマンドはtput:

tput setaf 10

(「a」は10の16進数)前景色と

tput setab 10

のために背景色。これらは別々です用語情報機能。

この例では、端末の記述に少なくとも16色が含まれていることを前提としています。8色しかない場合はtput気付かないかもしれませんが、結果は満足のいくものではありません。これは次のように確認できます。

tput colors

デフォルトでは、tput現在の値を使用して$TERM端末の説明を選択します。オプションでこれを上書きできます-T。たとえば、xterm(「xterm」に設定される他の端末とは対照的に)、このスクリーンショットに示すように端末の説明をTERM使用できます。xterm-16color

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

tput(おそらく、15行目では、何の効果もなかったことがわかるでしょう。これは、108色の範囲外です。

端末の説明、xtermまたはxterm-16color(またはxterm-256color) はtput、端末に書き込むことができるエスケープ シーケンスの作成方法を示します。bash プロンプトもエスケープ シーケンスを送信して、色を設定またはリセットする場合があります。tputシェル スクリプト内でを呼び出してテキストをエコーすると、同じコマンド (bash プロンプトで区切られている) が同じように動作しないときに、色付きのテキストが表示される場合があります。また、一部のプログラム (などls) は色を設定/リセットします。これらの異なるアプリケーションと共有する端末の色の状態は 1 つだけです。端末は自動的に切り替えません。

シェルスクリプトをテストすると、シェルプロンプトの詳細に頼るよりも予測しやすくなります。次に例を示します。

#!/bin/sh
case $TERM in
xterm*)
        TERM=xterm-256color
        ;;
linux*)
        TERM=linux-16color
        ;;
esac
export TERM
for p in $(seq 0 15)
do
        tput setab $p
        for q in $(seq 0 15)
        do
                tput setaf $q
                printf '%x%x' $p $q
        done
        tput sgr0
        printf '\n'
done

xterm でのスクリーンショット:

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

関連情報