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

主頁 > 知識庫 > Ruby中調用執行shell命令的6種方法

Ruby中調用執行shell命令的6種方法

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

碰到需要調用操作系統shell命令的時候,Ruby為我們提供了六種完成任務的方法:

1.Exec方法:

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

復制代碼 代碼如下:

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

值得注意的是,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
  >>

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面向對象編程詳解
  • 優化Ruby代碼使程序運行速度提高的例子

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

巨人網絡通訊聲明:本文標題《Ruby中調用執行shell命令的6種方法》,本文關鍵詞  Ruby,中,調用,執行,shell,命令,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Ruby中調用執行shell命令的6種方法》相關的同類信息!
  • 本頁收集關于Ruby中調用執行shell命令的6種方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 蓝山县| 和田市| 醴陵市| 龙岩市| 哈尔滨市| 泽州县| 曲靖市| 来凤县| 囊谦县| 西平县| 光山县| 襄汾县| 聊城市| 张家口市| 启东市| 鸡泽县| 翼城县| 如东县| 罗源县| 边坝县| 临夏市| 静安区| 阜城县| 怀安县| 黄大仙区| 夏河县| 德江县| 宝鸡市| 长丰县| 安达市| 中宁县| 镇平县| 都江堰市| 天峨县| 广灵县| 肥西县| 新巴尔虎左旗| 富民县| 嘉祥县| 上高县| 定结县|