Я пытаюсь определить в сценарии Perl в Linux, работает ли он в терминале.
То есть мне нужен код, который:
./ myscript.pl | less
или даже ./ myscript.pl dev / null> / dev / null 2> / dev / null
Особенно из-за второй пули я не могу использовать -t STDOUT
и его варианты, а также IO :: Interactive бесполезен.
Информация действительно кажется имеется в наличии. Если я запустил ps
, он покажет запись типа pts / 2
в столбце TTY
, даже когда я запустил ./ myscript.pl dev / null> / dev / null 2> / dev / null
и ?
при запуске в качестве задания cron или сценария CGI.
Есть ли элегантный способ определить это в Perl сценарий?Я бы предпочел не анализировать вывод ps
.