校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 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種方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 务川| 宜宾县| 稷山县| 营口市| 梁河县| 新昌县| 贵南县| 镇坪县| 诸城市| 定边县| 东莞市| 衡阳县| 集安市| 太仓市| 临西县| 大化| 嵊州市| 兖州市| 民乐县| 东宁县| 武鸣县| 高唐县| 清远市| 黄山市| 息烽县| 班戈县| 桐梓县| 兴宁市| 巴彦淖尔市| 长丰县| 宕昌县| 丰镇市| 新化县| 尖扎县| 乡城县| 枣阳市| 灌阳县| 南涧| 永靖县| 甘南县| 汨罗市|