Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何通过脚本检测命令行上文本的颜色?_Linux_Shell_Command Line_Console - Fatal编程技术网

Linux 如何通过脚本检测命令行上文本的颜色?

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

我有一个命令行程序,根据状态以不同的颜色输出一些文本。 文本在多次调用时不会更改,但其颜色会更改

例如:程序在控制台上输出文本S14789。 如果状态为失败,则此文本的颜色将为红色,如果通过,则为绿色


我需要写一个脚本,根据颜色状态做一些其他事情。有什么建议吗?

由于脚本一次给出一个值,您可以修改脚本,将退出值更改为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