エスケープシーケンスでプロンプトの色を変える

2026-04-12

人生で何回か同じのを書いてる気がしますが、エスケープシーケンスを使ってターミナルの文字色を変えるサンプルを出力するスクリプトです。.bashrcの中でプロンプト(PS1)に色を定義している箇所もこのコードが使われていますので、これで、プロンプトの色分け(テスト機=green、運用機=yellowなど)が出来ます。

#!/usr/bin/env bash

echo ""
echo "=== ANSI Color Preview ==="
echo ""

# Standard colors
echo "--- Standard Colors ---"
printf "\e[30m■ Black\e[0m         \\e[30m\n"
printf "\e[31m■ Red\e[0m           \\e[31m\n"
printf "\e[32m■ Green\e[0m         \\e[32m\n"
printf "\e[33m■ Yellow\e[0m        \\e[33m\n"
printf "\e[34m■ Blue\e[0m          \\e[34m\n"
printf "\e[35m■ Magenta\e[0m       \\e[35m\n"
printf "\e[36m■ Cyan\e[0m          \\e[36m\n"
printf "\e[37m■ White\e[0m         \\e[37m\n"

echo ""

# Bright colors
echo "--- Bright Colors ---"
printf "\e[90m■ Bright Black\e[0m   \\e[90m\n"
printf "\e[91m■ Bright Red\e[0m     \\e[91m\n"
printf "\e[92m■ Bright Green\e[0m   \\e[92m\n"
printf "\e[93m■ Bright Yellow\e[0m  \\e[93m\n"
printf "\e[94m■ Bright Blue\e[0m    \\e[94m\n"
printf "\e[95m■ Bright Magenta\e[0m \\e[95m\n"
printf "\e[96m■ Bright Cyan\e[0m    \\e[96m\n"
printf "\e[97m■ Bright White\e[0m   \\e[97m\n"

echo ""

# Bold & decorations (one example each)
echo "--- Bold & Decorations ---"
printf "\e[1;32m■ Bold\e[0m           \\e[1;32m\n"
printf "\e[2;37m■ Dim\e[0m            \\e[2;37m\n"
printf "\e[4;36m■ Underline\e[0m      \\e[4;36m\n"
printf "\e[7;33m■ Reverse\e[0m        \\e[7;33m\n"
printf "\e[9;31m■ Strikethrough\e[0m  \\e[9;31m\n"

echo ""

change-prompt-color-example