使用封装在 shell 脚本中的 ruby popen
我完成了作业的短文件,该作业使用 IO.popen("command").readlines 来获取该命令的 STDOUT。但是,我需要编写一个 shell 脚本来包装我的 ruby 文件。没问题,但不知何故将其放入 shell 脚本中会使 readlines 挂起。
ruby script.rb foo example > example.out
这有效
script.sh foo example >example.out
,它挂在读取行上。 ruby script.rb
是 script.sh 包含的全部内容。
I finished my short file for a homework assignment which uses IO.popen("command").readlines to grab the STDOUT of that command. However, I need to write a shell script to wrap my ruby file in. No problem, but somehow putting it in the shell script makes readlines hang.
ruby script.rb foo example > example.out
this works
script.sh foo example >example.out
this hangs on readlines. ruby script.rb
is all that script.sh contains.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看起来您忘记将参数传递给 ruby 命令。您也可能无法指定解释器
script.sh
或者,您可以将
#!/usr/bin/ruby
添加到 script.rb 的顶部并使其可执行(chmod +x脚本.rb
)。这不是 shell 脚本。但它通常是用解释性语言执行脚本的首选方式。完成后,您可以使用
./script.rb
运行它Looks like you forgot to pass your arguments to the ruby command. You may also be failing to specify an interpreter
script.sh
Alternatively you could just add
#!/usr/bin/ruby
to the top of script.rb and make it executable (chmod +x script.rb
). It's not a shell script. But it's generally the preferred way of executing a script in an interpretive language.Once that's done you can run it with
./script.rb