Linux 如何通过脚本检测命令行上文本的颜色?
我有一个命令行程序,根据状态以不同的颜色输出一些文本。 文本在多次调用时不会更改,但其颜色会更改 例如:程序在控制台上输出文本S14789。 如果状态为失败,则此文本的颜色将为红色,如果通过,则为绿色Linux 如何通过脚本检测命令行上文本的颜色?,linux,shell,command-line,console,Linux,Shell,Command Line,Console,我有一个命令行程序,根据状态以不同的颜色输出一些文本。 文本在多次调用时不会更改,但其颜色会更改 例如:程序在控制台上输出文本S14789。 如果状态为失败,则此文本的颜色将为红色,如果通过,则为绿色 我需要写一个脚本,根据颜色状态做一些其他事情。有什么建议吗?由于脚本一次给出一个值,您可以修改脚本,将退出值更改为0(如果通过),将退出值更改为1(如果通过) #!/bin/bash echo "Print in green" exit 0 $ ./script1.sh Print in gr
我需要写一个脚本,根据颜色状态做一些其他事情。有什么建议吗?由于脚本一次给出一个值,您可以修改脚本,将退出值更改为0(如果通过),将退出值更改为1(如果通过)
#!/bin/bash
echo "Print in green"
exit 0
$ ./script1.sh
Print in green
$ echo $?
0
同样的方法,你可以使用出口1返回值1到?变量,您可以使用它来确定脚本是通过还是失败。因此,下面是我根据颜色输出执行任务的步骤: /usr/bin/smoke是我的程序,它以特定的颜色输出文本。搜索颜色转义序列并执行任务,感谢@Jidder建议使用cat-v
注:32表示绿色。对于其他颜色,请参阅转义序列列表:到目前为止尝试过任何操作吗?脚本是否只为一次运行返回一个值,还是以不同颜色连续返回文本?将其导入cat-v并查看转义序列是什么,有很多方法可以在屏幕上给文本上色linux@SriharshaKalluru:脚本一次运行返回一个值。@Jidder:是的,我可以看到一些转义序列。我会试着做点什么。谢谢我得到的输出是:^[[0m^[[32;40mS14789I无法控制脚本它实际上是一个ELF二进制文件,返回我需要检查的值。我需要使用它的输出并编写一个脚本,根据输出执行一些其他操作。在这种情况下,获取命令的输出并将其传递给cat命令。| cat-v
#!/bin/bash
COUNT=`/usr/bin/smoke | cat -v | fgrep "^[[32" | wc -l`
if [ $COUNT -gt 0 ]
then
#Color found, do something
else
#Color not found, do something else
fi