为什么这些代码行没有返回任何结果?

时间:2015-10-12 02:20:55

标签: ruby command

终端命令:

ping -c 1 google.com | grep "time=" | sed -E "s/(.*)time=([.0-9]+) ms/\2/"

只返回一个数字,说明Google.com的ping时间,没有其他统计信息。但是,如果我尝试在Ruby脚本中提取输出:

detection_medium = `ping -c 1 google.com | grep "time=" | sed -E "s/(.*)time=([.0-9]+) ms/\2/"`
puts detection_medium

不返回任何输出。这种语法适用于大多数其他命令,我很困惑为什么它现在不工作。

  • 为什么上面的代码没有返回命令的输出?
  • 我应该如何修改它以确保它返回ping?

1 个答案:

答案 0 :(得分:4)

你需要将\ 2转义为\\ 2。此外,您可能希望在结果字符串上运行.chomp()。