スクリプト内のプロセスをフォークし、各プロセスの出力に異なる色を使用する

スクリプト内のプロセスをフォークし、各プロセスの出力に異なる色を使用する

4 つのフォルダーを操作するスクリプトがあります。

これらは完全に独立しているため、フォルダー パスを関数に渡して、その関数をフォークします。これは機能しますが、コンソールへの出力は判読不能な状態になります。

主な問題は、どのフォルダーが処理済みで、どのフォルダーがまだ処理中なのかがわからないことです。

この問題を回避するために私が考えた方法の 1 つは、フォルダーに基づいて出力に色 (赤、緑、青、黄色) を割り当てることです。赤の出力しかない場合は、フォルダー 1 だけがまだ処理中であることがわかります。

bash で色を設定する方法について Google で検索すると、echo を使用するか、grep や ls などの特定の関数に色を渡すことが説明されています。

方法はあるかセット関数の開始時の色は?

set_color()
{
   ??
}

process_folder()
{
   set_color $2
   ...
}

#in a loop, process my folders using process_folder $folder $color

答え1

関数の開始時に色を設定する方法はありますか?

可能です、

echo -e "\e[00;31mRED"

ただし、色が混ざって読みにくくなる可能性があります。出力のみに色を付けます。

echo -e "\e[00;31mRED\e[00m"

関連情報