婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Ruby中調(diào)用執(zhí)行shell命令的6種方法

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

熱門標簽:漯河電銷 征服者企業(yè)地圖標注 柯城手機地圖如何做地圖標注 外呼線路從哪里出來的 巫師3地圖標注魔力之所 天津外呼系統(tǒng)怎么收費 淮安自動外呼系統(tǒng)供應商 中牟外呼系統(tǒng)違法嗎 AI電銷機器人 線路

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

1.Exec方法:

Kernel#exec方法通過調(diào)用指定的命令取代當前進程例子:

復制代碼 代碼如下:

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

值得注意的是,exec方法用echo命令來取代了irb進程從而退出了irb。主要的缺點是,你無法從你的ruby腳本里知道這個命令是成功還是失敗。

2.System方法

Kernel#system方法操作命令同上, 但是它是運行一個子shell來避免覆蓋當前進程。如果命令執(zhí)行成功則返回true,否則返回false。

復制代碼 代碼如下:

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

3.反引號(Backticks,Esc鍵下面那個鍵)

復制代碼 代碼如下:

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

這種方法是最普遍的用法了。它也是運行在一個子shell中。

4.IO#popen

復制代碼 代碼如下:

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

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"

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

您可能感興趣的文章:
  • Ruby中case表達式詳解
  • Ruby面向?qū)ο缶幊淘斀?/li>
  • 優(yōu)化Ruby代碼使程序運行速度提高的例子

標簽:甘孜 河池 大慶 棗莊 克拉瑪依 內(nèi)江 南昌 西雙版納

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Ruby中調(diào)用執(zhí)行shell命令的6種方法》,本文關(guān)鍵詞  Ruby,中,調(diào)用,執(zhí)行,shell,命令,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Ruby中調(diào)用執(zhí)行shell命令的6種方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于Ruby中調(diào)用執(zhí)行shell命令的6種方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 广水市| 黄陵县| 团风县| 余姚市| 封开县| 花莲市| 清远市| 南阳市| 龙井市| 南和县| 页游| 分宜县| 五台县| 呼和浩特市| 荥经县| 焦作市| 商丘市| 河东区| 南投市| 突泉县| 旌德县| 南召县| 鱼台县| 黎平县| 江城| 梁山县| 邳州市| 东台市| 临澧县| 偃师市| 苏州市| 沁阳市| 南昌市| 安西县| 凤山市| 紫云| 莱阳市| 南木林县| 道孚县| 崇明县| 芜湖市|