【Bash / Ruby / Python3】ANSIエスケープシーケンスを用いた出力文字色の変更方法を比較

前書き

自動化Script作成時に、Bash (Shell Script)ではなく、RubyやPython3を用いた方がScriptのメンテナンス負荷が低くなります。自動化Scriptに使用するプログラミング言語変更を目的として、各言語の実装を比較します。

本記事では、ANSIエスケープシーケンスを用いた出力文字色の変更方法を比較します。比較では、実装例および実行例をそれぞれ示します。

Bashではなく、RubyやPython3を使った方が好ましい理由は、以下の記事に記載しています。この記事には、各プログラミング言語の様々な実装(ディレクトリ操作やファイル操作など)を比較した他記事へのリンクを一覧にまとめています。

Bash(Shell Script)からRubyやPythonに乗り換え!頻繁に使う処理を各言語で比較

                          

各言語のVersion

  • Bash:GNU bash, バージョン 5.0.3(1)-release
  • Ruby:ruby 2.5.5p157 (2019-03-15 revision 67260)
  • Python:Python 3.7.3

                                            

ANSIエスケープシーケンスの一覧

ANSIエスケープシーケンスでは、ターミナルに表示される文字色や背景色の変更、文字の強調などができます。以下に、文字色設定の一例を示します。

No. 文字色 ANSIエスケープシーケンス
1 “\033[30m”
2 “\033[31m”
3 “\033[32m”
4 “\033[33m”
5 “\033[34m”
6 マジェンタ “\033[35m”
7 シアン “\033[36m”
8 “\033[37m”
9 元の文字色に戻す “\033[0m”

出力例は、以下の通りです。

                    

比較:出力文字色の変更方法

自動化Scriptでは、ユーザに分かりやすくするために、警告メッセージやエラーメッセージの文字色をデフォルト色から変更する事があります。

以下に、各言語の実装例および実行例を示します。

Bashの場合

Rubyの場合

Python3の場合

Bash、Ruby、Python3の実行例

                                               

おすすめ

1件の返信