`
Goldice
  • 浏览: 107777 次
  • 性别: 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”‘  ...

    Alexa网络信息服务_Ruby_Shell_下载.zip

    2. **Shell脚本**:在Ruby中,可以使用`sh`或者`system`等方法来执行Shell命令,这使得Ruby成为编写系统管理脚本的有效工具。 3. **Alexa API**:如果项目是围绕Alexa网络信息服务,那么开发者可能使用了Alexa的API...

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

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

    用于检查应用程序健康状况的简单Rack中间件 -Ruby-Shell-下载

    健康检查的实现可能包括调用`system`或`spawn`函数来执行Shell命令,或者使用特定的Ruby库来检查特定的服务状态,如`pg`库检查PostgreSQL数据库,`net/http`库检查网络连接。 总的来说,这个Rack中间件是用Ruby编写...

    远程调用linux命令的demo

    6. **Chef**: Chef是另一个自动化基础设施管理工具,通过Ruby DSL(领域特定语言)编写配置脚本,可以实现远程命令执行和系统配置。 7. **PuTTY**: PuTTY是一个免费的SSH客户端,适用于Windows用户,可以进行远程...

    SignalFx的Ruby客户端库_Ruby_Shell_下载.zip

    6. **关闭客户端**:在程序结束时,调用`stop`方法关闭客户端,释放资源。 ```ruby client.stop ``` **应用场景:** - **微服务监控**:在分布式系统中,每个服务可以使用此客户端发送其特有的指标和事件。 - **...

    shell+ruby.zip

    其次,`shadowStatusRedis.sh`则是一个Shell脚本,它可能是用来调用Ruby脚本并管理文件系统的。它可能会检查当前正在写入的文件大小,一旦超过500MB,就会关闭当前文件,创建新的文件继续写入。Shell脚本中的`awk`、...

    Ruby-wisepdf使用shell工具wkhtmltopdf将HTML转成PDF文件输出给用户

    wisepdf将Ruby代码与这个命令行工具结合,提供了一个简洁的API来调用转换过程。 2. **安装** 要在项目中使用wisepdf,首先确保你的系统上已经安装了wkhtmltopdf。可以在其官方网站上找到对应操作系统的安装指南。...

    补丁resque与Heroku进程信号兼容_Ruby_Shell_下载.zip

    补丁可能涉及对`trap`方法的调用,这个方法用于设置信号处理器。例如: ```ruby trap('SIGTERM') do # 清理代码,停止接收新任务,等待现有任务完成 end ``` 此外,补丁可能还包括了针对Heroku环境的特殊考虑,...

    Ruby-Cocaine用于在Ruby代码中执行命令行的库

    这个库使得开发者可以更加方便、简洁地处理系统级别的交互,比如运行shell命令或者与外部系统进行通信。Cocaine库的主要目标是简化命令行接口(CLI)的调用,使代码更加模块化,易于理解和维护。 Cocaine库的核心...

    Ruby-irbtools改善Ruby的IRB控制台

    Ruby IRB(Interactive Ruby)是Ruby语言的标准交互式shell,允许开发者在运行时测试代码、探索类库和调试程序。然而,IRB本身的功能相对基础,对于一些高级的开发需求可能显得不够用。这就是irbtools的出现,它为...

    Hello, Ruby World!

    - **命令行接口**:Ruby可以通过其内置的功能直接调用系统命令和服务,例如使用`whoami`命令来获取当前用户名。 - **交互式环境**:Ruby提供了IRB(Interactive Ruby Shell)这样的交互式环境,允许开发者在命令行中...

    ruby programming

    该命令会显示Ruby的版本号,如果成功安装,则输出类似`ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]`的信息。 ### Ruby编辑器 为了更好地编写Ruby代码,推荐使用以下编辑器: - **Visual ...

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

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

    essential_ruby

    ### Ruby语言概述 ...总的来说,Ruby不仅适合网络编程、Web应用开发、Shell脚本编写、数据处理和文本操作等多种任务,而且对于Python和Perl程序员来说尤其熟悉,因为Ruby在某些方面受到了Perl的启发。

    ruby初学者教程(对初学者很有帮助)

    可以在命令行中执行shell命令并获取其输出。 ```ruby output = `ls` ``` **6.3 赋值运算符** 用于将值赋给变量。 ```ruby x = 10 ``` **6.4 并行赋值** 可以同时为多个变量赋值。 ```ruby a, b = 1, 2 ``` *...

    ruby解释性脚本语言中文文档

    在调试和测试方面,Ruby提供了诸如irb(交互式Ruby shell)这样的工具,允许开发者在运行时检查和测试代码。Test::Unit和RSpec等测试框架使得编写和执行单元测试变得简单,确保代码质量。 总的来说,Ruby是一种强大...

    Ruby高级编程教程-世界顶级高校教材(完整版827页)

    - 通过Ruby调用Windows API。 - COM组件的集成。 - **Ruby的扩展与嵌入** - C扩展的编写与编译。 - 如何将Ruby嵌入到C/C++应用中。 #### 三、Ruby的高级特性 - **语言内部机制** - 类与对象的实现原理。 - ...

    Ruby程序设计.doc

    在Ruby中,可以使用反引号(``` `` ```)来进行命令替换,即执行shell命令并获取其输出结果。 **6.3 赋值运算符** 赋值运算符用于将值赋给变量。 **6.4 并行赋值** Ruby支持并行赋值,即在一个赋值语句中同时给多...

    Ruby Reference Sheet.pdf

    - **交互式命令行:** Ruby提供了一个交互式的命令行工具,即`irb`(Interactive Ruby Shell)。在终端中输入`irb`即可启动该环境。 - **版本查询:** 要查看当前安装的Ruby版本,可以在终端输入`ruby --version`,...

Global site tag (gtag.js) - Google Analytics