Как узнать из скрипта ruby, был ли он запущен из командной строки, например, так:
> ruby myscript.rb
или из неинтерактивного процесса, например, хрон?
$stdin.tty? вернет true, если он подключен к терминалу, в противном случае false.
$stdin.tty?
Существует довольно много дополнительной информации по вопросу Лучшие практики с STDIN в Ruby?