0

たとえば、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
4

2 に答える 2

4

これは、呼び出しを使用して STDOUT が TTY に接続されているかどうかを確認することによって行われisatty()ます (C では、選択した言語に相当するものを置き換えます)。

于 2012-10-27T05:14:03.183 に答える
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
于 2012-10-27T05:15:36.617 に答える