濮阳杆衣贸易有限公司

主頁 > 知識庫 > 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為我們提供了六種完成任務的方法:

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)絡通訊聲明:本文標題《Ruby中調(diào)用執(zhí)行shell命令的6種方法》,本文關鍵詞  Ruby,中,調(diào)用,執(zhí)行,shell,命令,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關。
  • 相關文章
  • 下面列出與本文章《Ruby中調(diào)用執(zhí)行shell命令的6種方法》相關的同類信息!
  • 本頁收集關于Ruby中調(diào)用執(zhí)行shell命令的6種方法的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    东乌| 阿鲁科尔沁旗| 玉田县| 中阳县| 丰县| 运城市| 兴业县| 房山区| 龙陵县| 丰都县| 娱乐| 固始县| 周至县| 上思县| 宁城县| 正阳县| 衡山县| 江口县| 蛟河市| 汉沽区| 隆昌县| 靖远县| 丰顺县| 冷水江市| 松江区| 增城市| 吉林市| 乌拉特后旗| 塔城市| 无极县| 西充县| 海南省| 威宁| 龙泉市| 信阳市| 平武县| 沅陵县| 简阳市| 汽车| 万山特区| 信丰县|