原始出處 、作者資訊和本宣告。否則將追究法律責任。
碰到需要呼叫作業系統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"
>> $?
=> #
>> $?.to_i
=> 0
這種方法是最普遍的用法了。它也是執行在乙個子shell中。
4.io#popen
$ irb
>> io.popen("date")
mon mar 12 18:58:56 pdt 2007
=> nil
5.open3#popen3
$ irb
>> stdin, stdout, stderr = open3.popen3('dc')
=> [#, #, #]
>> 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, #, #, #]
>> $?
=> nil
>> pid
=> 26327
>> ignored, status = process::waitpid2 pid
=> [26327, #]
>> status.to_i
=> 256
本文出自 「悟道集」 部落格,請務必保留此出處
用ruby呼叫執行shell命令
碰到需要呼叫作業系統shell命令的時候,ruby為我們提供了六種完成任務的方法 1.exec方法 kernel exec方法通過呼叫指定的命令取代當前程序 例子 irb exec echo hello hostname hello nate.local 值得注意的是,exec方法用echo命令來取...
php呼叫遠端url的六種方法
示例 1 用file get contents 以get方式獲取內容 示例 2 用fopen開啟url,以get方式獲取內容 fp fopen url,r printarr stream get meta da ta fp printhr while feof fp echo url body re...
php 呼叫遠端url的六種方法小結
詳細出處參考 http www.jb51.net article 20705.htm 示例 1 用file get contents 以get方式獲取內容 示例 2 用fopen開啟url,以get方式獲取內容 fp fopen url,r printarr stream get meta data...