Ruby on Rails Popen 输出转换
Ruby on Rails Popen output conversion
我一直在尝试将数组转换为字符串。最后,我需要做的是:
- 将数组转换为字符串
- 删除
\n
个字符
- 删除引号
- 在视图中将每行放在一个换行符上
我还应该说,我正在尝试执行此操作而不创建要读取的临时文件。
tools_controller.rb
def ping_host(host)
f = IO.Popen("ping -c 3 #{host}")
@output = f.readlines
return @output
end
views/tools/ping.html.erb
<%= @output %>
这很好用,但是,视图中显示的输出还有很多不足之处:
["PING 10.10.10.1 (10.10.10.1): 56 data bytes\n", "64 bytes from 10.10.10.1: icmp_seq=0 ttl=64 time=1.614 ms\n", "64 bytes from 10.10.10.1: icmp_seq=1 ttl=64 time=1.716 ms\n", "64 bytes from 10.10.10.1: icmp_seq=2 ttl=64 time=1.658 ms\n", "\n", "--- 10.10.10.1 ping statistics ---\n", "3 packets transmitted, 3 packets received, 0.0% packet loss\n", "round-trip min/avg/max/stddev = 1.614/1.663/1.716/0.042 ms\n"]
我正在想办法把它变成这样的格式:
PING 10.10.10.1 (10.10.10.1): 56 data bytes
64 bytes from 10.10.10.1: icmp_seq=0 ttl=64 time=1.614 ms
64 bytes from 10.10.10.1: icmp_seq=1 ttl=64 time=1.716 ms
64 bytes from 10.10.10.1: icmp_seq=2 ttl=64 time=1.658 ms
--- 10.10.10.1 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 1.614/1.663/1.716/0.042 ms
去掉所有的引号和换行符并以控制台的方式呈现给用户,而不是在网页上。
也许是这样的?
def ping_host(host)
f = IO.Popen("ping -c 3 #{host}")
@output = f.readlines
return "<pre>#{@output.join}</pre>".html_safe
end
我一直在尝试将数组转换为字符串。最后,我需要做的是:
- 将数组转换为字符串
- 删除
\n
个字符 - 删除引号
- 在视图中将每行放在一个换行符上
我还应该说,我正在尝试执行此操作而不创建要读取的临时文件。
tools_controller.rb
def ping_host(host)
f = IO.Popen("ping -c 3 #{host}")
@output = f.readlines
return @output
end
views/tools/ping.html.erb
<%= @output %>
这很好用,但是,视图中显示的输出还有很多不足之处:
["PING 10.10.10.1 (10.10.10.1): 56 data bytes\n", "64 bytes from 10.10.10.1: icmp_seq=0 ttl=64 time=1.614 ms\n", "64 bytes from 10.10.10.1: icmp_seq=1 ttl=64 time=1.716 ms\n", "64 bytes from 10.10.10.1: icmp_seq=2 ttl=64 time=1.658 ms\n", "\n", "--- 10.10.10.1 ping statistics ---\n", "3 packets transmitted, 3 packets received, 0.0% packet loss\n", "round-trip min/avg/max/stddev = 1.614/1.663/1.716/0.042 ms\n"]
我正在想办法把它变成这样的格式:
PING 10.10.10.1 (10.10.10.1): 56 data bytes
64 bytes from 10.10.10.1: icmp_seq=0 ttl=64 time=1.614 ms
64 bytes from 10.10.10.1: icmp_seq=1 ttl=64 time=1.716 ms
64 bytes from 10.10.10.1: icmp_seq=2 ttl=64 time=1.658 ms
--- 10.10.10.1 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 1.614/1.663/1.716/0.042 ms
去掉所有的引号和换行符并以控制台的方式呈现给用户,而不是在网页上。
也许是这样的?
def ping_host(host)
f = IO.Popen("ping -c 3 #{host}")
@output = f.readlines
return "<pre>#{@output.join}</pre>".html_safe
end