2011-05-03 28 views
11

Tôi có đoạn mã sau mà tôi muốn sử dụng để ping địa chỉ IP và ghi vào một tập tin. Tất cả đều hoạt động tốt, ngoại trừ tôi không thể ghi nó vào tập tin.Làm thế nào để Ruby 'đặt' để ghi dữ liệu vào một tệp?

server = %w'192.168.150.254 
192.168.150.251 
192.168.120.1 
192.168.120.2' 

File.open('/test/test2.out','w') do |s| 
    server.each do |p| 
    r = `ping -a -n 1 #{p}` 
    puts r 
    end 
end 

Trả lời

31

Thay đổi puts r thành s.puts r. Bạn đang viết để stdout thay vì s. (Xem Kernel#putsIO#puts)

+0

Cảm ơn, các công trình tuyệt vời – rahrahruby

Các vấn đề liên quan