是否可以编写连接到Heroku并运行Ruby命令的shell命令?

是否可以在OSX上编写以下脚本?

heroku run console load 'init.rb' 

以下不起作用:

 alias 'heroku_init=heroku run console; load "init.rb"' 

看来shell必须等待Heroku控制台连接,或者需要一种方法将load命令发送到Heroku控制台而不是bash shell。

对camilo-santana的大悟是答案:

 #!/usr/bin/expect -f set timeout -1 spawn heroku console expect "irb(main):001:0>" send "load 'app/init.rb'\r" interact 

它也可以用别名来完成:

 alias 'hc=heroku run console -- -r ./app/init.rb' 

你希望它将load 'init.rb'发送到heroku run console程序的标准输入。 您可以使用管道运算符在shell中执行此操作:

 echo "load 'init.rb'" | heroku run console 

这有效,但请注意它会使控制台挂起,如果您想手动输入更多命令,您可以执行以下操作:

 { echo "load 'init.rb'"; cat } | heroku run console 

希望这可以帮助 ;)