如果 program 运行 with exec 没有颜色输出
No colour output if program run with exec
我有一个运行的 C 程序
execvp("grep", args);
其中 args 是一个数组 {"grep", "test"}
(测试是我想让 grep 找到的词)。
问题是 grep 的输出没有颜色。在正常的 bash shell 中,grep 以红色突出显示 test
,但在我的程序输出中,它只是打印出如下行
this is a test
没有突出显示或任何类型的颜色。
我还使用 execvp 执行一些其他命令,这些命令也会在 bash shell 中产生彩色输出,但在我的输出中没有颜色。
有什么办法可以解决这个问题吗?我需要做些什么才能 stdout
?
您需要向 grep
提供正确的选项才能使其着色。您的 shell 环境很可能包括:
alias grep='grep --color=auto'
但是execvp
对别名一无所知。
因此创建 args 数组:{"grep", "--color=auto", "test", 0}
并在您的 execvp("grep", args);
调用中使用它。
我有一个运行的 C 程序
execvp("grep", args);
其中 args 是一个数组 {"grep", "test"}
(测试是我想让 grep 找到的词)。
问题是 grep 的输出没有颜色。在正常的 bash shell 中,grep 以红色突出显示 test
,但在我的程序输出中,它只是打印出如下行
this is a test
没有突出显示或任何类型的颜色。
我还使用 execvp 执行一些其他命令,这些命令也会在 bash shell 中产生彩色输出,但在我的输出中没有颜色。
有什么办法可以解决这个问题吗?我需要做些什么才能 stdout
?
您需要向 grep
提供正确的选项才能使其着色。您的 shell 环境很可能包括:
alias grep='grep --color=auto'
但是execvp
对别名一无所知。
因此创建 args 数组:{"grep", "--color=auto", "test", 0}
并在您的 execvp("grep", args);
调用中使用它。