2016-03-30 9 views
1

bashスクリプトで実行するコマンドが特定の色で端末に出力されたかどうかを検出しようとしています。私は、出力の内容に応じて特定の色で出力するJavaコードにいくつかのprint文を用意しています。これは、このコードを使用してbashはカラーテキスト出力をbashで検出します

が行われます。

//ANSI color codes for output 
public static final String ANSI_RED = "\u001B[31m"; 
public static final String ANSI_GREEN = "\u001B[32m"; 
public static final String ANSI_RESET = "\u001B[0m"; 

System.out.println(ANSI_GREEN + "This prints in the color green." + ANSI_RESET); 

はbashで、色でこの差を検出する方法はありますか?出力が赤色の場合はbashスクリプトを停止し、緑色の場合は続行します。誰かがこれを行う方法を知っていれば大いに感謝されるでしょう。

おかげ

答えて

1

リテラル文字は、通常のツールを使用してマッチングが可能です。それは実際にそれらを削除する文字を表示して代わりに表示色を変更するときのターミナルです。

output=$(javaprog) 
if [[ $output == $'\e[32mThis prints in the color green.\e[0m' ]]; then 
    echo "Detected green output" 
fi 
+0

ありがとうございました。ありがとうございました。 – BlueMoose

関連する問題