最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Ruby中調(diào)用執(zhí)行shell命令的6種方法

 更新時(shí)間:2014年10月11日 13:30:23   作者:瓊樓玉宇  
這篇文章主要介紹了Ruby中調(diào)用執(zhí)行shell命令的6種方法,本文羅列了Ruby中可以調(diào)用和執(zhí)行Linux系統(tǒng)Shell命令的6個(gè)方法,需要的朋友可以參考下

碰到需要調(diào)用操作系統(tǒng)shell命令的時(shí)候,Ruby為我們提供了六種完成任務(wù)的方法:

1.Exec方法:

Kernel#exec方法通過(guò)調(diào)用指定的命令取代當(dāng)前進(jìn)程例子:

復(fù)制代碼 代碼如下:

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

值得注意的是,exec方法用echo命令來(lái)取代了irb進(jìn)程從而退出了irb。主要的缺點(diǎn)是,你無(wú)法從你的ruby腳本里知道這個(gè)命令是成功還是失敗。

2.System方法

Kernel#system方法操作命令同上, 但是它是運(yùn)行一個(gè)子shell來(lái)避免覆蓋當(dāng)前進(jìn)程。如果命令執(zhí)行成功則返回true,否則返回false。

復(fù)制代碼 代碼如下:

 $ irb            
  >> system 'echo "hello $HOSTNAME"'
  hello nate.local
  => true
  >> system 'false'
  => false
  >> puts $?
  256
  => nil
  >>

3.反引號(hào)(Backticks,Esc鍵下面那個(gè)鍵)

復(fù)制代碼 代碼如下:

$ irb
  >> today = `date`
  => "Mon Mar 12 18:15:35 PDT 2007n"
  >> $?
  => #<Process::Status: pid=25827,exited(0)>
  >> $?.to_i
  => 0

這種方法是最普遍的用法了。它也是運(yùn)行在一個(gè)子shell中。

4.IO#popen

復(fù)制代碼 代碼如下:

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

5.open3#popen3

復(fù)制代碼 代碼如下:

$ 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"

6.Open4#popen4

復(fù)制代碼 代碼如下:

$ 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

相關(guān)文章

  • Ruby中使用設(shè)計(jì)模式中的簡(jiǎn)單工廠模式和工廠方法模式

    Ruby中使用設(shè)計(jì)模式中的簡(jiǎn)單工廠模式和工廠方法模式

    這篇文章主要介紹了Ruby中使用設(shè)計(jì)模式中的簡(jiǎn)單工廠模式和工廠方法模式的示例,這兩種模式經(jīng)常被用于Ruby on Rails開(kāi)發(fā)的結(jié)構(gòu)設(shè)計(jì)中,需要的朋友可以參考下
    2016-03-03
  • Ruby中區(qū)分運(yùn)行來(lái)源的方法

    Ruby中區(qū)分運(yùn)行來(lái)源的方法

    這篇文章主要介紹了Ruby中區(qū)分運(yùn)行來(lái)源的方法,本文講解的是類似Python中的if __name__ == '__main__':效果,其實(shí)Ruby中也有類似語(yǔ)法,需要的朋友可以參考下
    2015-01-01
  • Ruby 多線程的潛力和弱點(diǎn)分析

    Ruby 多線程的潛力和弱點(diǎn)分析

    這篇文章主要介紹了Ruby 多線程的潛力和弱點(diǎn)分析,本文講解了Ruby 多線程和 IO Block、Ruby GIL 的影響、JRuby 去除了 GIL、Ruby 多線程總結(jié)等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • 在Docker中自動(dòng)化部署Ruby on Rails的教程

    在Docker中自動(dòng)化部署Ruby on Rails的教程

    這篇文章主要介紹了在Docker中部署Ruby on Rails的教程,Docker是當(dāng)下最火的虛擬機(jī),而本文所介紹的Ruby on Rails的部署則充分利用了Ruby中的rake這一炫酷的實(shí)現(xiàn)自動(dòng)化的方法,需要的朋友可以參考下
    2015-06-06
  • Jekyll靜態(tài)網(wǎng)站后臺(tái)引擎使用教程

    Jekyll靜態(tài)網(wǎng)站后臺(tái)引擎使用教程

    今天,我就來(lái)示范如何在github上搭建Blog,你可以從中掌握github的Pages功能,以及Jekyll軟件的基本用法。更重要的是,你會(huì)體會(huì)到一種建立網(wǎng)站的全新思路。
    2016-04-04
  • Ruby 取得指定月日期數(shù)的方法

    Ruby 取得指定月日期數(shù)的方法

    取得指定月日期數(shù)的Ruby代碼
    2009-05-05
  • 解讀Ruby中注釋的使用方法

    解讀Ruby中注釋的使用方法

    這篇文章主要介紹了解讀Ruby中注釋的使用方法,注釋的用法是每門(mén)編程語(yǔ)言中最基本的知識(shí)點(diǎn)之一,需要的朋友可以參考下
    2015-05-05
  • 深入理解Ruby on Rails中的緩存機(jī)制

    深入理解Ruby on Rails中的緩存機(jī)制

    這篇文章主要介紹了深入理解Ruby on Rails中的緩存機(jī)制,本文來(lái)自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • RUBY 新手教程 跟我一起學(xué)ruby

    RUBY 新手教程 跟我一起學(xué)ruby

    從今天起我就要開(kāi)始學(xué)Ruby了。怎么樣,沒(méi)見(jiàn)吧?一個(gè)新人寫(xiě)教程。就憑我堅(jiān)強(qiáng)的毅力,科學(xué)的自學(xué)方法,以及我的鉆研精神,我有信心學(xué)通Ruby,而同樣是新手的你也可以!
    2011-01-01
  • 簡(jiǎn)單的Ruby中的Socket編程教程

    簡(jiǎn)單的Ruby中的Socket編程教程

    這篇文章主要介紹了簡(jiǎn)單的Ruby中的Socket編程教程,是為Ruby on Rails學(xué)習(xí)過(guò)程當(dāng)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-04-04

最新評(píng)論

通许县| 游戏| 车险| 襄樊市| 阳信县| 淮滨县| 崇文区| 上饶市| 齐河县| 合作市| 潮安县| 金山区| 通州区| 隆安县| 黎川县| 牙克石市| 昂仁县| 富裕县| 陆川县| 同心县| 西乌| 洪江市| 光泽县| 灌南县| 壤塘县| 大庆市| 龙里县| 文山县| 资溪县| 宜昌市| 四川省| 麟游县| 固始县| 易门县| 临猗县| 梅河口市| 沙雅县| 邢台县| 财经| 沛县| 黎川县|