例如,mysql
命令
mysql -e 'show databases'
+--------------------------+
| Database |
+--------------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------------+
但是当您重定向到文件时,内容是不同的,例如
mysql -e 'show databases' > /tmp/test.txt
cat /tmp/test.txt
Database
mysql
performance_schema
答案 0 :(得分:4)
这是通过使用isatty()
调用检查STDOUT是否连接到TTY来完成的(在C中,用您选择的语言替换等价物)。
答案 1 :(得分:2)
对于Python,您可以使用sys.stdout.isatty()
。
<强> test.py
强>:
import sys
if sys.stdout.isatty():
print 'Yep'
else:
print 'Nope'
一个演示:
$ python2 test.py
Yep
$ python2 test.py | cat
Nope
$ python2 test.py > test.txt
$ cat test.txt
Nope