【问题标题】:using ruby popen wrapped in a shell script使用包裹在 shell 脚本中的 ruby​​ popen
【发布时间】:2009-10-14 06:41:27
【问题描述】:

我完成了我的家庭作业的短文件,它使用 IO.popen("command").readlines 来获取该命令的 STDOUT。但是,我需要编写一个 shell 脚本来包装我的 ruby​​ 文件。没问题,但是以某种方式将它放在 shell 脚本中会使 readlines 挂起。

ruby script.rb foo example > example.out

这行得通

script.sh foo example >example.out

这挂在 readlines 上。 ruby script.rb 是 script.sh 包含的所有内容。

【问题讨论】:

    标签: ruby shell command stdout popen


    【解决方案1】:

    看起来您忘记将参数传递给 ruby​​ 命令。你也可能没有指定解释器

    脚本.sh

    #!/bin/sh
    ruby script.rb "$@"
    

    或者,您可以将 #!/usr/bin/ruby 添加到 script.rb 的顶部并使其可执行 (chmod +x script.rb)。它不是一个 shell 脚本。但它通常是以解释性语言执行脚本的首选方式。

    完成后,您可以使用

    运行它

    ./script.rb

    【讨论】:

    • 应该是 /usr/bin/ruby(用户中没有“e”)
    • 感谢您指出这一点。有时手指比大脑还快。
    • 或者,/usr/bin/env ruby​​
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 2022-01-06
    • 2014-07-21
    相关资源
    最近更新 更多