【问题标题】:Run command line strings verbatim from ruby script从 ruby​​ 脚本逐字运行命令行字符串
【发布时间】:2015-11-08 01:11:40
【问题描述】:

我可以通过ruby 'name of file'通过命令行运行一个ruby脚本

在那个文件中,我可以做 `puts "this_and_that_string"

但是如何使我放在一起的字符串表现得就像我直接在命令行中键入它们一样执行命令?

例如some_function cd \/var\/ 在 ruby​​ 脚本中的行为就像我在命令行中键入一样: cd /var

【问题讨论】:

    标签: ruby command-line terminal command command-line-interface


    【解决方案1】:

    您可以使用backtickssystem 来访问shell 命令:

    system 'cd /var/'
    

    您会注意到它们返回的内容(字符串与退出状态)和打印内容有所不同。

    但请注意,有些 Ruby 函数已经完成了一些您可能会尝试使用 shell 执行的操作,例如,Dir.chdir。事实上,上面提到的外壳程序会启动一个子进程,该子进程将忘记将cd'd 放入目录中。因此,您必须将包含起始 cd 的命令串在一起,例如:

    system 'cd /var; ls'
    

    【讨论】:

      【解决方案2】:

      简短的回答是在你的 ruby​​ 代码中使用反引号来输出命令行。在这里发布了一个很好的解释:Calling shell commands from Ruby

      【讨论】:

        猜你喜欢
        • 2011-03-10
        • 2011-01-22
        • 2012-03-25
        • 1970-01-01
        • 2021-06-10
        • 2021-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多