ads2 cls create | awk -F [\"] '/^>>> cluster established .../ { strt=1 } strt!=1 { next } $1 ~ "name" { cnt++;nam[cnt]=$2 } $1 ~ "state" {stat[cnt]=$2;print -e "Node "nam[cnt]" has state "$2 } END { if (stat[1]=="3" && stat[2]=="3") { print "Cluster established. Starting session manager" } else { print "Failed" } }
Вышеуказанная команда дает вывод ADS2 CLS Создать
на awk
, который проверяет определенную выходную переменную и на основе На этом он возвращается либо кластер. Начальная диспетчер сеансов «
или не удалось
Однако я пытаюсь раскрасить эти выходы с Green
для первого и« красный »на второй. Я искал в Интернете и не нашел ничего, связанного с цветным текстом, который напечатан с использованием команды Print
, а скорее, используя команду echo -e
.
Так как я могу раскрасить эти два выхода, однако с текущей реализацией!
Выход команды ADS2 CLS Создать
можно увидеть ниже
kernel with pid 3336 (port 9011) killed
kernel with pid 16406 (port 9011) killed
probing service daemon @ http://xx.xx.x.xx:9010
starting kernel FDT-NB-0144 @ http://xx.xx.0.xx:9011 name=xx-NB-0144 max_consec_timeouts=10 clustermode=Standard hostname=FDT-NB-0144 framerate=20000 schedmode=Standard rtaddr=xx.xx.x.xx tickrole=Local tickmaster=local max_total_timeouts=1000
kernel FDT-NB-0144 running
probing service daemon @ http://xx.xx.xx.xx:9010
starting kernel fdt-c-agx-0008 @ http://xx.xx.xx.18:9011 name=fdt-c-agx-0008 max_consec_timeouts=10 clustermode=Standard hostname=nvidia@fdt-c-agx-0008 framerate=20000 schedmode=Standard rtaddr=xx.xx.xx.xx tickrole=Local tickmaster=local max_total_timeouts=1000
kernel fdt-c-agx-0008 running
>>> start cluster establish ...
>>> cluster established ...
nodes {
node {
name = "xxx-c-agx-0008";
address = "http://xx.xx.xx.xx:9011/";
state = "3";
}
node {
name = "xxx-NB-0144";
address = "http://xx.xx.0.xx:9011/";
state = "3";
}
}
Вы можете использовать цветные последовательности ANSI в команде AWK Printf следующим образом:
awk 'BEGIN{printf "\x1b[32m%s\x1b[0m\n", "Succeeded"}'
awk 'BEGIN{printf "\x1b[31m%s\x1b[0m\n", "Failed"}'
EX:
Чтобы применить его в вашем случае, изменить конец
Блок:
END {
if (stat[1]=="3" && stat[2]=="3") {
printf "\x1b[32mCluster established. Starting session manager\x1b[0m\n" }
else {
printf "\x1b[31mFailed\x1b[0m\n"
}
}