Você está executando comandos sequencialmente, então o shell executa irb
, aguarda até que irb
seja fechado e execute o próximo comando (no seu caso require 'random_utils.rb'
)…
O que você deseja é fornecer o script para irb
via STDIN
irb <<EOF
require 'random_utils.rb'
a = SuccessChecker.new
EOF
Mas isso provavelmente não fará o que você quer, pois irb
é para uso interativo; você deve considerar o uso do seu interpretador Ruby normal, por exemplo:
ruby <<EOF
require 'random_utils.rb'
a = SuccessChecker.new
EOF