作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有这个简单的 ruby 脚本:
redcricket@dev-006:~$ cat simple.rb
#!/usr/local/bin/ruby
IO.popen 'ls -l', 'r+' do |f|
puts f.gets
end
当我运行它时,我得到的唯一输出是...
redcricket@dev-006:~$ ./simple.rb
total 32
...我所期望的是...
redcricket@smp-mig-dev-006:~$ ls -l
total 32
drwxr-xr-x 4 redcricket co 4096 Dec 5 12:23 applications
-rw-r--r-- 1 redcricket co 464 Oct 5 16:23 config
drwxr-xr-x 72 redcricket co 4096 Dec 5 15:11 docs
drwxr-xr-x 3 root root 4096 Dec 5 12:14 oradiag_root
drwxr-xr-x 5 redcricket co 4096 Dec 5 16:22 platform
-rwxr-xr-x 1 redcricket co 373 Dec 5 16:30 process_yum_output.rb
-rwxr-xr-x 1 redcricket co 2159 Nov 28 16:24 SetupSSHPK.sh
-rwxr-xr-x 1 redcricket co 142 Dec 5 16:31 simple.rb
...我想我需要以某种方式迭代 f.gets?
谢谢!
最佳答案
ruby IO#gets
method只返回 IO 对象的下一行输入。
为了得到所有的行你可以重复调用“gets”直到它为零,或者调用read
获取整个字符串,或 readlines
获取数组中的输入行。
IO.popen('ls -l','r') { |f| puts $_ while f.gets }
IO.popen('ls -l','r') { |f| puts f.read }
IO.popen('ls -l','r') { |f| puts f.readlines }
关于ruby - 如何遍历 popen 输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13732951/
我是一名优秀的程序员,十分优秀!