2016-03-30 28 views
1

Bir bash komut dosyasında çalıştırdığım bir komutun, terminale belirli bir renkte gönderilip gösterilmediğini bulmaya çalışıyorum. Java kodumda, çıktı içeriğine bağlı olarak belirli renklerde çıktı veren bazı baskı ifadeleri var.Bash bash içinde renkli metin çıktısını algılar

//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 renkte bu farkı algılamak için bir yol var mı:

Bu

bu kodu kullanılarak yapılır? Çıktı kırmızıysa veya yeşil kalırsa devam ederse bash komut dosyasını durdurabiliyorum. Bunu yapmanın bir yolu bilen varsa, bu çok takdir edilecektir.

Teşekkür

cevap

1

edebi karakterler düzenli araçlarını kullanarak eşleştirme için kullanılabilir; sadece onları kaldıran ve görüntü rengini değiştiren karakterleri görüntülerken sadece terminaldir.

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

Teşekkürler bu çok yardımcı oldu. – BlueMoose