我正试图做相反的事情
我正在运行一个正在更改其输出格式的应用程序,因为它检测到stdout上的管道,我希望它认为它是一个交互式终端,以便在重定向时获得相同的输出.
我当时认为将它包装在expect脚本中或使用proc_open()PHP中的它会这样做,但事实并非如此.
有什么想法吗?
可能重复:
可以通过shell重定向捕获彩色输出吗?
在这种情况下,特别是我试图在将git status -s它管道到另一个命令时保留颜色.
diff例如,某些git命令和其他命令grep有一个选项,--color=always但git status没有.
有没有办法管道或捕获命令的输出,并让它认为它输出到xterm shell,所以它不会自动禁用颜色?
某些命令生成彩色文本以提高可读性.
我正在使用Linux.例如,当我使用rak或hg diff
输出为彩色时,为了更好的可读性.
但是,当我通过管道输出 less
hg diff | less
Run Code Online (Sandbox Code Playgroud)
颜色丢失了.
我该如何保留颜色?
谢谢!
我想从git status变量中捕获颜色输出并稍后打印.
到目前为止,我已经达到:
status=$(git status -s)
echo -e "$status"
Run Code Online (Sandbox Code Playgroud)
上面的脚本保持换行完整(thx到捕获多行输出到Bash变量)但从输出中删除颜色.
有没有办法保持变量中的颜色并回显它?
我正在使用 grep 来消除很多由 NewRelic 生成的日志噪声。我使用以下命令执行此操作:
heroku logs --force-colors -t -a myApp -s app | grep --color=never web.1
Run Code Online (Sandbox Code Playgroud)
不幸的是,日志的有用颜色在某处丢失了,并且输出是未着色的。
即使将输出移到别处,该--force-colors标志也应强制heroku logs命令输出颜色。该--color=never标志应该强制 grep 不使用他们自己的配色方案。
我已经尝试了所有可能的组合,但没有或没有这两种颜色标志,但无济于事。有人对如何解决这个问题有任何建议吗?
我使用粉笔为命令行节点应用程序的输出着色。通常是这样的:
console.log(chalk.red(error));
Run Code Online (Sandbox Code Playgroud)
但是,我需要通过管道从子进程输出stdout,并为输出加上颜色:
var child = childProcess.spawn('foo', args);
child.stdout.pipe(process.stdout); //how to use chalk to colour this?
Run Code Online (Sandbox Code Playgroud)
从子进程中输入标准输出时,如何使用粉笔为颜色添加颜色?
我正在编写一个小脚本,需要运行一个输出多行的程序,然后显示这些行的计数.但是,该程序可能需要几秒钟才能运行,我宁愿不运行两次,一次用于输出,另一次用于计数.
我可以两次运行程序:
#!/bin/bash
count=$(program-command | wc -l)
program-command
printf "$count lines"
Run Code Online (Sandbox Code Playgroud)
有没有办法在只运行一次程序的同时获得计数和输出?此输出具有格式,因此理想情况下将保留格式(颜色).