当您使用
git时,它似乎神奇地知道标准输出是通过管道还是文件与显示到控制台时.例如,如果您启用了颜色,那么就可以
git status
git status | less
要么
git status > status.txt
它删除了linux color formatting,你只能看到简单的无色文本.
git如何检测其命令的输出是否要转发到终端?
解决方法
isatty(int fd)将检查fd是指终端还是其他东西.它是GNU C库中unistd.h的一部分.
手册页:http://linux.die.net/man/3/isatty
顺便说一句:如果你想使用另一个程序读取程序,但是你想愚蠢地认为你的程序是一个人类,那么就有办法做到这一点.你可以使用pseudo-terminal(pty).例如,该技术在expect中使用.
原文地址:https://www.jb51.cc/linux/395284.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。