bash PS1 256色(太字)

bash PS1 256色(太字)

bash コンソールで使用できるすべての色を一覧表示したいです。その後、プロンプトを太字でオレンジ色に設定したいと思います。私はこれを使用して色コードを一覧表示しています:

for code in {0..255}; do echo -e "\e[38;05;${code}m $code: Test"; done

しかし、問題はそれをどうやって作るかだ大胆な色はそのままですか?

ここで太字にするためのアドバイスを探しました:http://misc.flogisoft.com/bash/tip_colors_and_formattingしかし、太字と 256 色のいずれかを組み合わせたコードは見つかりませんでした。

答え1

次のいずれかの方法で記述できます。

echo -e "\e[1;38;05;${code}m $code: Test"
echo -e "\e[1m\e[38;05;${code}m $code: Test";
echo -e "\e[38;05;${code}m\e[1m $code: Test";
echo -e "\e[38;05;${code};1m $code: Test";
tput bold; tput setaf "$code" # provided the terminfo database is
                              # properly populated

tput boldリセットしない限り、1回だけ実行できます。大胆さtput sgr0または\e[mまたは を使用します\e[0m

答え2

Stephane の例を補足するために、256 色すべてを一覧表示する簡単なシェル関数を次に示します。

#!/bin/bash
esc=$'\033'
for row in {0..15} ; 
do
    rowtext=
    for col in {0..15}; 
    do
        color=$(( $row * 16 + $col))
        BG="${esc}[48;5;${color}m"
        rowtext=${rowtext}$BG\ 
        if [[ $color -lt 100 ]]; then rowtext=${rowtext}$BG\   ;fi 
        if [[ $color -lt 10 ]]; then rowtext=${rowtext}$BG\   ;fi 
        rowtext=${rowtext}$BG${color}
        rowtext=${rowtext}$BG\ 
    done
    echo "${rowtext}${esc}[00m "
done

これは、bash に必要だった zsh 関数の簡単な「移植」です。(bash では) 動作するようです。少なくとも十分に動作するようです。

カラー コード番号はカラー ブロックに表示されます。これは、プロンプトやその他の場所で色を設定するために使用します。

関連情報