Как определить, подключен ли стандартный вывод к tty в Perl?

Я ищу Perl-эквивалент этого кода Python:

from sys import stdout
if stdout.isatty():
    print "yes"
else:
    print "no"
14
задан Ether 18 August 2010 в 23:48
поделиться

2 ответа

Используйте оператор -t filetest .

print -t STDOUT ? "Yes\n" : "No\n"

Обратите внимание, что в Perl STDOUT может быть привязан (по сути, это чрезмерно усложненный перегруженный объект), поэтому вывод в STDOUT может по-прежнему достигать TTY, даже если он не привязан к нему напрямую.

15
ответ дан 1 December 2019 в 12:26
поделиться

Используйте IO :: interactive , если вам нужно, чтобы STDOUT действительно был подключен к терминалу, а не просто перенаправлялся на / dev / null / или что-то еще.

8
ответ дан 1 December 2019 в 12:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: