• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >ruby > Ruby中调用执行shell命令的6种方法

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

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了ruby shell,ruby 命令,ruby,ruby碧玺,ruby woo口红等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

碰到需要调用操作系统shell命令的时候,Ruby为我们提供了六种完成任务的方法:

1.Exec方法:

Kernel#exec方法通过调用指定的命令取代当前进程例子:

      $ irb
      >> exec 'echo "hello $HOSTNAME"'
         hello nate.local
      $
</div>

值得注意的是,exec方法用echo命令来取代了irb进程从而退出了irb。主要的缺点是,你无法从你的ruby脚本里知道这个命令是成功还是失败。

2.System方法

Kernel#system方法操作命令同上, 但是它是运行一个子shell来避免覆盖当前进程。如果命令执行成功则返回true,否则返回false。
 $ irb            
  >> system 'echo "hello $HOSTNAME"'
  hello nate.local
  => true
  >> system 'false'
  => false
  >> puts $?
  256
  => nil
  >>
</div>

3.反引号(Backticks,Esc键下面那个键)

$ irb
  >> today = `date`
  => "Mon Mar 12 18:15:35 PDT 2007n"
  >> $?
  => #<Process::Status: pid=25827,exited(0)>
  >> $?.to_i
  => 0
</div>
这种方法是最普遍的用法了。它也是运行在一个子shell中。

4.IO#popen

  $ irb
  >> IO.popen("date") { |f| puts f.gets }
  Mon Mar 12 18:58:56 PDT 2007
  => nil
</div>

5.open3#popen3

$ irb
  >> stdin, stdout, stderr = Open3.popen3('dc')
  => [#<IO:0x6e5474>, #<IO:0x6e5438>, #<IO:0x6e53d4>]
  >> stdin.puts(5)
  => nil
  >> stdin.puts(10)
  => nil
  >> stdin.puts("+")
  => nil
  >> stdin.puts("p")
  => nil
  >> stdout.gets
  => "15n"
</div>

6.Open4#popen4

$ irb
  >> require "open4"
  => true
  >> pid, stdin, stdout, stderr = Open4::popen4 "false"
  => [26327, #<IO:0x6dff24>, #<IO:0x6dfee8>, #<IO:0x6dfe84>]
  >> $?
  => nil
  >> pid
  => 26327
  >> ignored, status = Process::waitpid2 pid
  => [26327, #<Process::Status: pid=26327,exited(1)>]
  >> status.to_i
  => 256
</div>

</div>

您可能想查找下面的文章:

  • Ruby中调用执行shell命令的6种方法
  • Ruby中执行Linux shell命令的六种方法详解
  • Ruby、PHP、Shell实现求50以内的素数
  • Ruby和Shell脚本实现判断成绩及格功能

相关文章

  • 使用Ruby编写发送邮件的程序的简单教程
  • 在Docker中自动化部署Ruby on Rails的教程
  • Ruby面向对象编程详解
  • 利用RJB在Ruby on Rails中使用Java代码的教程
  • Rails bundle命令安装mysql gem包出错的解决方法
  • 详解Ruby中的方法概念
  • ruby ftp封装实例详解
  • Ruby中Block和迭代器的使用讲解
  • 详解Ruby中的块的知识
  • Ruby常用文件操作代码实例

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • ruby中执行周期性任务(定时任务)的3种方法
    • win7安装ruby on rails开发环境
    • 实例解析Ruby设计模式开发中对观察者模式的实现
    • print不自动换行,puts会自动换行第1/2页
    • Ruby简洁学习笔记(一):字符串、数字、类和对象
    • Ruby常用文件操作方法
    • 详细解读Ruby当中的条件判断语句
    • 使用Ruby实现FTP密码破解
    • Ruby一行代码实现的快速排序
    • Ruby里4种比较函数(equal?, eql?, ==, ===)详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有