国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Ruby > 正文

如何在Ruby中調用執行shell命令

2020-02-24 15:36:30
字體:
來源:轉載
供稿:網友

在有需求的時候我們經常會在Ruby中執行Shell命令,那么你知道如何在Ruby中調用執行shell命令,下面我們就一起去看看關于Ruby中調用執行shell命令的6種方法吧。

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中調用執行shell命令的內容,小編列出了Ruby中可以調用和執行Linux系統Shell命令的6個方法,希望能給大家帶來幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 民权县| 冕宁县| 固阳县| 泉州市| 科技| 靖远县| 晋江市| 永宁县| 土默特左旗| 荔浦县| 策勒县| 木里| 孝感市| 娱乐| 扎赉特旗| 搜索| 铁岭县| 黄石市| 赞皇县| 米林县| 彰化市| 吴桥县| 玉山县| 抚远县| 萨迦县| 铜鼓县| 荣成市| 绥滨县| 弋阳县| 镇康县| 南岸区| 吉首市| 奉贤区| 柞水县| 葫芦岛市| 金湖县| 凤冈县| 南皮县| 平安县| 泾川县| 读书|