`
Goldice
  • 浏览: 104217 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Ruby调用shell命令

阅读更多

 

原来发在diandian的几篇旧闻,也一并转到iteye上来吧。

 

1. exec

exec 'echo "hello $HOSTNAME"'

用echo命令来取代当前进程,无法知道命令是否成功

2. system

system('echo "hello $HOSTNAME"')

运行一个子shell来避免覆盖当前进程,运行成功返回true,运行失败返回false

3. ·· 反引号 

 

`echo $HOSTNAME`

运行一个子shell来避免覆盖当前进程,可以接受命令执行结果

4. IO.popen

def run(command, input='')

        IO.popen(command, 'r+') do |io|

                io.puts input

                io.close_write

                return io.read

        end 

end

run 'wc -w', 'How many words are in this string?'

 

IO.popenis a good way to run noninteractive commandscommands that read 

all their standard input at once and produce some output.

5. Open3#open3

require 'open3'

Open3.popen3('bc') do | stdin, stdout, stderr |

               Thread.new { loop { puts "STDOUT stream: #{stdout.gets}" } }

               Thread.new { loop { puts "STDERR stream: #{stderr.gets}" } }

               stdin.puts "3 * 4"

               stdin.puts "1 / 0"

               stdin.puts "2 ^ 5"

               sleep 0.1
end

    Runs a command in a subprocess. Data written to stdin can be read by the subprocess, anddata written to standard output and standard error in the subprocess will be available on thestdout and stderr streams.

 

 

0
0
分享到:
评论

相关推荐

    Ruby中调用执行shell命令的6种方法

    碰到需要调用操作系统shell命令的时候,Ruby为我们提供了六种完成任务的方法: 1.Exec方法: Kernel#exec方法通过调用指定的命令取代当前进程例子: 代码如下:  $ irb  >> exec ‘echo “hello $HOSTNAME”‘  ...

    Ruby中执行Linux shell命令的六种方法详解

    在Ruby中,执行shell命令是一件不奇怪的事情,Ruby提供了大概6种方法供开发者进行实现。这些方法都很简单,本文将具体介绍一下如何在Ruby脚本中进行调用终端命令。 exec exec会将指定的命令替换掉当前进程中的操作,...

    rye:从Ruby安全并行访问Unix shell

    守望者- V0.9 同时在多台机器上(从Ruby)安全地运行SSH命令。 受到启发,并与Ruby 1.8、1.9和JRuby 1.3+兼容! ... 通过调用Rye :: Box对象上的方法来执行Shell命令。 rbox = Rye :: Box . ne

    build_execution:强制执行显式错误处理且从不调用Shell的执行原语

    强制执行显式错误处理且从不调用Shell的执行原语。 如何使用 该接口类似于Open3.capture2e。 我们在运行命令之前将命令打印到stdout(除非:quiet=> true )。 默认情况下,命令进程共享调用进程的标准输出,但是可以...

    Ruby中case表达式详解

    Ruby的case表达式有两种形式: 第一种形式接近于一组连续的if语句:它让你列出一组条件,并执行第... 您可能感兴趣的文章:Ruby面向对象编程详解Ruby中调用执行shell命令的6种方法优化Ruby代码使程序运行速度提高的例子

    rexe:可配置的Ruby命令行过滤器,格式转换器和执行器

    可执行文件 Rexe是Ruby脚本和gem,它通过以下方式将Ruby在命令行中的有用性和简洁性倍增: ... 不幸的是,当要调用多个OS命令时,Ruby也可能很笨拙。 有时,一个好的解决方案是在同一命令行上结合

    Pragmatic - From Java to Ruby jun 2006

    再说,即便是操作系统,最简单的指令多个执行,最终是不是还不如自己积累最严谨的语言,写好并调试好一段Shell来执行更保险呢? 而脚本语言始终还是有一些做不到的地方,工业级的应用,经历了那么多年的洗练。 远程...

    wasmer-ruby::gem_stone::spider_web:Ruby的WebAssembly运行时

    要安装wasmer Ruby gem,只需在您的shell中运行以下命令: $ gem install wasmer 。 例 在examples/simple.rs有一个玩具程序,用Rust(或编译成WebAssembly的任何其他语言)编写: #[no_mangle] pub extern fn ...

    chruby:更改当前的Ruby

    调用hash -r清除命令查找哈希表。 Ruby名称的模糊匹配。 默认为系统Ruby。 (可选)支持自动切换和.ruby-version文件。 支持和 。 小(〜100 LOC)。 有测试。反特征不钩cd 。 不要安装可执行垫片,也不需要在安装...

    ruby开发的交互式程序例子

    1.能够调用定义的方法,如help 2.能够执行系统命令 3.能够类似irb/pry进行ruby语言解析 安装: gem install ripl gem install ripl-shell_commands 示例 ripl这个gem,它也提供很多插件,如下是一个简单的终端下...

    command-builder:通过简单而优雅的方式构建可从Shell运行的命令。 还允许使用EventMachine同步执行或异步执行

    命令生成器command-builder通过简单而优雅的方式从shell生成可运行的命令。 还允许使用同步执行或异步执行。 这是调用jpegoptim的真实示例: require "command-builder"cmd = CommandBuilder :: new ( :jpegoptim )...

    JSP API接口和返回的版本

    另外一些需要编译的语言,则提供了编译用的 shell 文件(Linux/Unix 下使用)和 bat 文件(Windows 下使用),或者直接提供编译好的二进制库文件。 不过为了让读者能够更清楚如何安装,我们还是对每种语言的安装都...

    Vebugger:交互式 shell 调试器的前端

    Vebugger 目前支持: 在源代码中跟踪当前执行的命令调试器流程命令 - 步入、设置、设置和继续断点管理评估当前执行范围内的表达式弄乱程序的状态(改变值,调用函数) Vebugger 构建为用于为交互式 shell 调试器...

    pianodora:Go 管理 Pianobar 的项目

    Pianobar 允许在事件发生时执行 shell 命令,例如更改歌曲、喜欢歌曲、禁止歌曲或更改电台。 我们的用例是 Raspberry Pi,之前我们有一个 Ruby 脚本发布 Hipchat 通知。 在 Ruby VM 启动、脚本发出 HTTP 请求然后...

    点文件:别名,shell函数和其他设置的个人集合

    有关所调用命令的完整详细信息,请参见 。 . ./setup.sh VSCode设置同步 我使用“ 扩展程序在多台计算机之间同步设置。 设置保存到要点: : 确保macOS使用brew安装的zsh。 (摘自。) # check the zsh info ...

    personal-blog:断言不是魔术是我的个人博客。 我写信要记住我学到的东西,也帮助人们学习它

    这也是我针对HTML,CSS,JavaScript,Sass,Ruby,Shell脚本,JAM堆栈,API交互,Vue等的测试/实践基础。 我在上面写东西是因为我喜欢写东西,我需要写下来以后记住它们,希望我写下来的东西对其他人有帮助。 概述 ...

    groovy-官网翻译.docx

     建立在Java的基础上,同时,吸收了其他语言的优点,比如:Python、 Ruby 和 Smalltalk  Java开发人员,上手快,几乎没有学习曲线  提供静态类型检查和编译,提高性能、健壮性  支持函数编程、闭包等语法,...

    scorer:计算情绪分数的 Sinatra 应用程序

    得分手将 Opener Web 服务链中的结果存储到 MySQL ...命令行界面您现在应该能够像常规 shell 命令一样调用 scorer:通过它的名称。 安装后,gem 通常位于您的路径中,因此您可以从任何地方直接调用它。 此应用程序从标

    httpsqs_client --轻量级简单队列服务HTTPSQS

    PHP、Java、Perl、Shell、Python、Ruby等支持HTTP协议的编程语言均可调用。  ● 非常快速,入队列、出队列速度超过10000次/秒。  ● 高并发,支持上万的并发连接,C10K不成问题。  ● 支持多队列。  ● 单个队列...

    ner:NER组件,提供守护程序,Web服务等

    现在,您应该能够将NER作为常规的shell命令来调用:通过其名称。 一旦安装好了,通常的宝石就位于您的路径中,因此您可以从任何地方直接调用它。 该应用程序从标准输入中读取文本,以识别语言。 cat some_kind_of...

Global site tag (gtag.js) - Google Analytics