Ответ 1
Я всегда использовал $stdout.isatty
, чтобы проверить это. Другие подходы могут включать проверку значения ENV['TERM']
или использование ruby-terminfo gem.
Существует ли стандартный способ (ish) POSIX для определения моего процесса (Im пишет это как Ruby script прямо сейчас, но Im любопытно для нескольких сред, включая Node.js и приложения командной строки ISO C ) запускается в интерактивном терминале, в отличие от, скажем, cron, или выполнения от другого инструмента, или... так далее и т.д.
В частности, мне нужно получить пользовательский ввод в определенных ситуациях, и мне нужно потерпеть неудачу, если это невозможно сделать возможным (т.е. выполняться cron.) Я могу сделать это с переменной окружения, но Id предпочитает что-то более стандартное -ий, если смогу.
Я всегда использовал $stdout.isatty
, чтобы проверить это. Другие подходы могут включать проверку значения ENV['TERM']
или использование ruby-terminfo gem.
Ближе всего вы получите AFAIK, isatty(). Но, как говорит сама страница, ничто не гарантирует, что человек контролирует терминал.